如何遍历名称含指定字符串的目录并统计对应目录下.mp4文件总大小
实现代码
from pathlib import Path # 可自定义配置参数 root_dir = "C:\\Users\\你的根目录路径" # 替换为你的上层根目录路径 folder_keyword = "2020" # 文件夹名称需要包含的匹配字符串 target_file_suffix = ".mp4" # 需要统计的文件后缀 total_file_size = 0 # 遍历根目录下所有子文件夹,筛选名称包含指定关键词的文件夹 for folder in Path(root_dir).rglob("*"): # 跳过非文件夹、名称不包含关键词的路径 if not folder.is_dir() or folder_keyword not in folder.name: continue # 遍历当前符合条件文件夹下的所有文件 for file_path in folder.rglob("*"): if file_path.is_file() and file_path.suffix.lower() == target_file_suffix: total_file_size += file_path.stat().st_size print(f"总大小:{total_file_size} 字节") # 如需转换为MB: print(f"总大小:{total_file_size / 1024 / 1024:.2f} MB") # 如需转换为GB: print(f"总大小:{total_file_size / 1024 / 1024 / 1024:.2f} GB")
功能说明
- 基于原有单文件夹统计逻辑扩展,新增文件夹自动筛选能力,无需手动指定单个文件夹路径
- 支持自定义根目录、文件夹匹配关键词、统计文件后缀
- 默认遍历根目录下所有层级的子文件夹,支持调整为仅统计一级子目录
- 自动兼容大小写不同的MP4后缀,
.MP4/.Mp4/.mp4格式文件均会被纳入统计 - 输出结果默认以字节为单位,可通过注释中的方法转换为MB、GB等更易读的单位
调整方法
如果仅需要统计根目录下的一级子文件夹(不包含更深层级的子文件夹),将遍历文件夹的代码行:for folder in Path(root_dir).rglob("*"):
替换为:for folder in Path(root_dir).iterdir()即可。
内容的提问来源于stack exchange,提问作者sungliengk
相关产品推荐
相关产品推荐

