"""
文件大小
统计当前目录下每个文件的大小,
如果遇到文件夹,则进入文件夹继续统计。
"""
import os
def __statistics(cur_dir, result):
"""
遍历指定目录及其子目录,统计每个文件的大小。
:param cur_dir: 当前正在处理的目录
:param result: 一个字典,用于存储文件名及其大小
:return: 无
"""
# 列出当前目录下的所有文件和目录
files = os.listdir(cur_dir)
# 遍历每个文件或目录
for file in files:
# 构建完整文件路径
file_path = os.path.join(cur_dir, file)
# 判断当前项是否为目录
if os.path.isdir(file_path):
# 是目录,则递归处理该目录
# 递归处理子目录
sub_dir = os.path.join(cur_dir, file)
__statistics(sub_dir, result)
else:
# 是文件,则统计文件大小并添加到结果中
# 计算文件大小并存储到结果字典中
result[file] = os.path.getsize(file_path)
# 返回统计结果
return result
def statistics(begin):
"""
主函数,用于启动文件大小统计。
:param begin: 统计的起始目录
:return: 无
"""
# 初始化一个空字典,用于存储文件统计结果
result = {}
# 更改当前工作目录到指定的开始目录
os.chdir(begin)
# 获取当前工作目录的路径,作为开始目录的绝对路径
begin = os.getcwd()
# 调用__statistics函数,对开始目录进行统计,结果存储在result字典中
r = __statistics(begin, result)
# 遍历统计结果中的文件,按文件名排序
for file in sorted(r):
# 输出每个文件的名称和大小
# 按文件名排序后,打印每个文件的大小
print(f'文件【{file}】的大小为{r[file]}bytes。')
# 从当前目录的父目录开始统计文件大小
statistics('..')
文件大小:统计当前目录下每个文件的大小
未经允许不得转载:创想未来 » 文件大小:统计当前目录下每个文件的大小

创想未来
评论前必须登录!
注册