【发布时间】:2011-01-29 22:52:55
【问题描述】:
我想使用 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 秒(右键单击-> 属性自行查看)。那么有没有一种更快的方法来找到接近 windows 可以做到的文件夹的总大小?
Windows 7,python 2.6(进行了搜索,但大多数时候人们使用的方法与我自己的方法非常相似) 提前致谢。
【问题讨论】:
-
提供的代码无效。您能否发布一个您实际运行过的完整的最小示例?
-
不好意思,之前只有这个功能,剩下的都编辑进去了。
标签: python optimization directory