使用Python计算目录的大小?

使用Python计算目录的大小?,第1张

使用Python计算目录的大小?

这遍历所有子目录;总结文件大小

import osdef 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) # skip if it is symbolic link if not os.path.islink(fp):     total_size += os.path.getsize(fp)    return total_sizeprint(get_size(), 'bytes')

还有一个使用os.listdir进行娱乐的oneliner
不包括子目录 ):

import ossum(os.path.getsize(f) for f in os.listdir('.') if os.path.isfile(f))

参考:

  • os.path.getsize-以字节为单位给出大小
  • 步行
  • os.path.islink

已更新 要使用 os.path.getsize ,这比使用os.stat()。st_size方法更清晰。

感谢ghostdog74指出这一点!

os.stat -
st_size 给出大小(以字节为单位)。也可以用于获取文件大小和其他文件相关信息。

import osnbytes = sum(d.stat().st_size for d in os.scandir('.') if d.is_file())

更新2018

如果您使用Python
3.4或更早版本,则可以考虑使用

walk
第三方
scandir
软件包提供的更有效的方法。在Python
3.5和更高版本中,此软件包已合并到标准库中,
os.walk
并获得了相应的性能提升。

更新2019

最近,我一直在使用

pathlib
越来越多的
pathlib
解决方案:

from pathlib import Pathroot_directory = Path('.')sum(f.stat().st_size for f in root_directory.glob('**/*') if f.is_file())


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5645774.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-16
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存