您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

使用Python计算目录的大小?

使用Python计算目录的大小?

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

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)
            # skip if it is symbolic link
            if not os.path.islink(fp):
                total_size += os.path.getsize(fp)

    return total_size

print(get_size(), 'bytes')

还有一个使用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 给出大小(以字节为单位)。也可以用于获取文件大小和其他文件相关信息。

import os

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

如果您使用Python 3.4或更早版本,则可以考虑使用walk第三方scandir软件包提供的更有效的方法。在Python 3.5和更高版本中,此软件包已合并到标准库中,os.walk并获得了相应的性能提升。

最近,我一直在使用pathlib越来越多的pathlib解决方案:

from pathlib import Path

root_directory = Path('.')
sum(f.stat().st_size for f in root_directory.glob('**/*') if f.is_file())
python 2022/1/1 18:30:24 有192人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶