使用 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中文网其他相关文章!