这抓住子目录:
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()
和一个乐趣使用os.listdir(不包括子目录)的一个oneliner:
import os
sum(os.path.getsize(f) for f in os.listdir('.') if os.path.isfile(f))
参考:
更新
要使用os.path.getsize,这比使用os.stat()。st_size方法更清晰。
感谢ghostdog74指出这个!
os.stat – st_size提供以字节为单位的大小。也可以用来获取文件大小和其他文件相关的信息。
更新2015
scandir可用,并且可能比os.walk方法更快。一个包可以从pypi,和os.scandir()被包括在python 3.5: