Я хочу быстро найти общий размер любой папки, использующей python.
import os
from os.path import join, getsize, isfile, isdir, splitext
def GetFolderSize(path):
TotalSize = 0
for item in os.walk(path):
for file in item[2]:
try:
TotalSize = TotalSize + getsize(join(item[0], file))
except:
print("error with file: " + join(item[0], file))
return TotalSize
print(float(GetFolderSize("C:\\")) /1024 /1024 /1024)
Чтобы простой скрипт, который я написал, чтобы получить общий размер папки, занял около 60 секунд (+-5 секунд). Используя многопроцессорность, я сократил время до 23 секунд на четырехъядерном компьютере.
С помощью проводника Windows требуется всего ~ 3 секунды (см. Свойства click->, чтобы убедиться в этом). Так есть ли более быстрый способ найти общий размер папки, близкий к скорости, с которой Windows может это сделать?
Windows 7, python 2.6 (делал поиски, но большую часть времени люди использовали очень похожий метод с моим) Заранее спасибо.