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

Python如何遍历根目录下多子文件夹的图片并按文件夹分类存储为字典

修正后实现代码

import os

dict_object = {}
# 定义需要过滤的无效目录/文件名
exclude_names = {'.DS_Store', '.ipynb_checkpoints', '.'}
# 如果需要仅统计指定格式图片,可以打开下方注释的配置
# img_extensions = {'.jpg', '.jpeg', '.png', '.gif', '.bmp', '.webp'}

for root, dirs, files in os.walk(".", topdown=True):
    # 提取当前遍历的目录名称
    current_dir = os.path.basename(root)
    # 跳过无效目录
    if current_dir in exclude_names:
        continue
    # 过滤有效文件
    valid_files = []
    for file_name in files:
        if file_name in exclude_names:
            continue
        # 如果需要仅保留图片,打开下方两行注释即可
        # if os.path.splitext(file_name)[1].lower() not in img_extensions:
        #     continue
        valid_files.append(file_name)
    # 写入字典
    dict_object[current_dir] = valid_files

原代码问题说明

  • 逻辑嵌套错误:原代码把文件遍历和目录遍历做了嵌套,会出现「每个文件都给所有同级目录赋值为当前文件名」的逻辑错误,且每次赋值都用[file_name]覆盖原有列表,最终只能保留最后一个遍历到的文件名
  • 未做无效内容过滤:没有过滤Mac系统生成的.DS_Store文件、Jupyter的缓存目录.ipynb_checkpoints以及根目录.,导致生成大量无效条目
  • os.walk参数不合理:topdown=False是从最深层目录开始遍历,不符合从上层目录开始统计的需求,改成topdown=True逻辑更清晰

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 22:27:03