有沒有更好的方式來獲取根大小而不是使用os.walk?在Python中獲取%ROOT%大小
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
print get_size("C:/")
我想這個代碼(這是我從here了),它工作正常文件夾內,沒有那麼快,但是當我嘗試在根目錄下它的超慢,有時它崩潰[WindowsError: [錯誤123]文件名,目錄名稱或卷標語法不正確]。有沒有一種方法可以像C:\中的左臨界屬性一樣獲取根大小?
編輯: 我調整了一些代碼以避免錯誤。
fp = os.path.join(dirpath, f)
try:
stat = os.stat(fp)
except OSError:
continue
try:
seen[stat.st_ino]
except KeyError:
seen[stat.st_ino] = True
else:
continue
total_size += stat.st_size
但它仍然緩慢地獄。計算需要6〜7分鐘。
這有幫助嗎? http://stackoverflow.com/questions/1392413/calculating-a-directory-size-using-python – Vanessa
這是我提供的相同鏈接。 –
我會調查os調用。想到「GetDiskFreeSpaceEx()」 – cmd