计算一个目录的大小可以通过递归遍历该目录下所有文件,将每个文件的大小加起来得到目录的总大小。Python中可以通过 os
模块来实现该功能。
以下是具体步骤和代码实现:
- 导入
os
模块:
import os
-
定义一个函数,函数名为
get_dir_size
,该函数接收一个参数dir_path
表示要计算的目录路径,返回值为目录的大小。 -
在函数体内部递归遍历目录并计算目录大小,同时将计算结果保存在变量
total_size
中。 -
使用
os.path.getsize()
函数获取文件大小,如果遍历的元素是一个目录,则递归计算目录大小。 -
最后返回变量
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 为单位输出,结果保留两位小数。