2017-10-19 622 views
0

我與分成3子文件夾(A,LYR,出)一個大的目錄(項目)工作,他們分爲子子文件夾中有很多的文件裏面他們:如何分別使用Python獲取每個子文件夾的大小?

enter image description here

enter image description here

我嘗試分別獲取這3個子文件夾的大小 - 每個子文件夾。當我使用此代碼(我紅Calculating a directory size using Python?):

import os 

def get_size(start_path = "."): 
    total_size = 0 
    for dirpath, dirnames, filenames in os.walk(start_path): 
     for f in filenames: 
      fp = os.path.join(dirpath, f) 
      total_size += os.path.getsize(fp) 
    return total_size 
path = r"G:\desktop\Project" 
dirList = os.listdir(path) 
for fname in dirList: 
    print fname 
    print get_size(path) 

我得到:

>>> 
a 
41730716 
lyr 
41730716 
out 
41730716 
>>> 

我不明白什麼是我的錯誤。

41730716是所有的「工程」目錄的大小,而這不是我想要的。我需要子文件夾的大小:a,lyr,每個。 其實,子文件夾的大小爲23.4 MB,LYR爲12 MB,出門就是4 MB-那些我需要的結果得到的值。

我紅: 在Calculating size folder python。在這個問題中,我只獲得了包括所有子文件夾大小的目錄大小 - 這不是我所需要的。

回答

0

最後,我用這個代碼:

import os 
def get_size(start_path = "."): 
    total_size = 0 
    for dirpath, dirnames, filenames in os.walk(start_path): 
     for f in filenames: 
      fp = os.path.join(dirpath, f) 
      total_size += os.path.getsize(fp) 
    return "Folder = %0.1f MB" % (total_size/(1024*1024.0)) 
os.chdir(r"G:\desktop\Project") 
all_subdirs = [ d for d in os.listdir('.') if os.path.isdir(d)] 
for dirs in all_subdirs: 
    dir = os.path.join(r"G:\desktop\Project", dirs) 
    os.chdir(dir) 
    current = os.getcwd() 
    print current 
    print get_size(current) 
相關問題