计算一个目录的大小可以使用Python os模块中的os.path库函数和os.walk函数。
具体步骤如下:
- 引入模块和初始化变量
import os
# 初始大小为0
size = 0
- 使用os.walk遍历目录下的文件,计算文件大小
for root, dirs, files in os.walk('path/to/dir'):
for file in files:
file_path = os.path.join(root, file)
# 只计算文件大小,排除目录
if os.path.isfile(file_path):
size += os.path.getsize(file_path)
- 格式化输出结果
# 转换结果为可读性更好的单位
if size < 1024:
size_str = '{}B'.format(size)
elif size < 1024 * 1024:
size_str = '{:.2f}KB'.format(size / 1024)
elif size < 1024 * 1024 * 1024:
size_str = '{:.2f}MB'.format(size / 1024 / 1024)
else:
size_str = '{:.2f}GB'.format(size / 1024 / 1024 / 1024)
print('目录{}的大小为{}'.format('path/to/dir', size_str))
示例1:计算当前目录下的大小
import os
# 初始大小为0
size = 0
# 遍历当前目录
for root, dirs, files in os.walk('.'):
for file in files:
file_path = os.path.join(root, file)
# 只计算文件大小,排除目录
if os.path.isfile(file_path):
size += os.path.getsize(file_path)
# 转换结果为可读性更好的单位
if size < 1024:
size_str = '{}B'.format(size)
elif size < 1024 * 1024:
size_str = '{:.2f}KB'.format(size / 1024)
elif size < 1024 * 1024 * 1024:
size_str = '{:.2f}MB'.format(size / 1024 / 1024)
else:
size_str = '{:.2f}GB'.format(size / 1024 / 1024 / 1024)
print('当前目录的大小为{}'.format(size_str))
示例2:计算指定目录下的大小
import os
# 初始大小为0
size = 0
# 遍历指定目录
for root, dirs, files in os.walk('/home/user'):
for file in files:
file_path = os.path.join(root, file)
# 只计算文件大小,排除目录
if os.path.isfile(file_path):
size += os.path.getsize(file_path)
# 转换结果为可读性更好的单位
if size < 1024:
size_str = '{}B'.format(size)
elif size < 1024 * 1024:
size_str = '{:.2f}KB'.format(size / 1024)
elif size < 1024 * 1024 * 1024:
size_str = '{:.2f}MB'.format(size / 1024 / 1024)
else:
size_str = '{:.2f}GB'.format(size / 1024 / 1024 / 1024)
print('目录/home/user的大小为{}'.format(size_str))
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Python 如何计算一个目录的大小 - Python技术站