详解Python 如何计算一个目录的大小

  • Post category:Python

计算一个目录的大小可以通过递归遍历该目录下所有文件,将每个文件的大小加起来得到目录的总大小。Python中可以通过 os 模块来实现该功能。

以下是具体步骤和代码实现:

  1. 导入 os 模块:
import os
  1. 定义一个函数,函数名为 get_dir_size,该函数接收一个参数 dir_path 表示要计算的目录路径,返回值为目录的大小。

  2. 在函数体内部递归遍历目录并计算目录大小,同时将计算结果保存在变量 total_size 中。

  3. 使用 os.path.getsize() 函数获取文件大小,如果遍历的元素是一个目录,则递归计算目录大小。

  4. 最后返回变量 total_size 的值。

以下是示例代码:

import os

def get_dir_size(dir_path):
    total_size = 0
    for root, dirs, files in os.walk(dir_path):
        for file in files:
            total_size += os.path.getsize(os.path.join(root, file))
        for dir in dirs:
            total_size += get_dir_size(os.path.join(root, dir))
    return total_size

可以通过调用该函数获取指定目录的大小,示例如下:

dir_path = '/path/to/your/dir'
size = get_dir_size(dir_path)
print(f"目录 {dir_path} 的大小为 {size} bytes")

另一个示例:

dir_path = 'D:/test'
size = get_dir_size(dir_path)
print(f"目录 {dir_path} 的大小为 {size/1024/1024:.2f} MB")

该示例中,计算出 D:/test 目录的大小,并以 MB 为单位输出,结果保留两位小数。