首页 >后端开发 >Python教程 >如何在Python中计算目录大小?

如何在Python中计算目录大小?

Patricia Arquette
Patricia Arquette原创
2024-11-04 03:46:01457浏览

How to Calculate Directory Size in Python?

使用 Python 计算目录大小

在 Python 中计算目录的大小对于管理存储空间或分析数据来说是一项有用的任务。让我们探索如何有效地计算此大小。

使用 os.walk 求和文件大小

一种方法涉及遍历目录及其子目录,对文件大小求和。这可以使用 os.walk 函数来实现:

<code class="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)
            if not os.path.islink(fp):
                total_size += os.path.getsize(fp)
    return total_size

print(get_size(), 'bytes')</code>

此函数递归计算目录大小,提供以字节为单位的总大小。

单行使用 os. listdir

要快速计算目录大小而不考虑子目录,可以使用单行代码:

<code class="python">import os
sum(os.path.getsize(f) for f in os.listdir('.') if os.path.isfile(f))</code>

此表达式使用 os.listdir 列出目录中的所有文件当前目录,并使用 os.path.getsize 确定其大小。

使用 os.stat 和 os.scandir

或者,您可以使用 os.stat 或os.scandir 用于计算文件大小。 os.stat 提供额外的文件信息,包括大小:

<code class="python">import os

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

os.scandir 在 Python 3.5 中提供了改进的性能,并提供了更有效的方法来迭代目录。

Pathlib解决方案

如果您使用的是 Python 3.4 ,pathlib 库提供了一种方便的方法来处理目录操作:

<code class="python">from pathlib import Path

root_directory = Path('.')
sum(f.stat().st_size for f in root_directory.glob('**/*') if f.is_file())</code>

这个 pathlib 解决方案结合了前面的方法,以实现简洁和高效计算。

以上是如何在Python中计算目录大小?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn