You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取目录及其所有子目录中全部文件的名称与大小?

解决方法

原代码的问题在于只执行了一次next(walk_method),仅获取了当前目录的内容,没有完整遍历os.walk生成的所有目录项;同时手动计算子目录大小的逻辑也没有深入遍历嵌套子目录,无法获取所有层级的文件信息。

下面是修正后的代码,可遍历当前目录及所有子目录的文件,输出每个文件的完整路径和大小:

import os

path = os.getcwd()
size_of_file = []

# 递归遍历当前目录及所有子目录
for root, _, files in os.walk(path):
    for file in files:
        file_path = os.path.join(root, file)
        # 获取文件字节大小
        file_size = os.stat(file_path).st_size
        size_of_file.append((file_path, file_size))

# 按文件大小排序后输出
for file_path, size in sorted(size_of_file, key=lambda x: x[1]):
    print(f"{file_path} : {round(size/(1024*1024), 3)}MB")

代码说明

  • os.walk(path)会自动递归遍历目标路径下的所有层级目录,每次返回三个值:当前目录的完整路径root、当前目录下的子目录列表、当前目录下的文件列表。
  • 遍历每个目录下的文件,拼接出完整文件路径,获取大小后存入列表。
  • 最后按文件大小排序,将字节转换为MB格式并保留3位小数输出。

内容的提问来源于stack exchange,提问作者Tim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 21:35:29