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

如何遍历子文件夹及所含文件并导出为XLSX/CSV格式文件

实现目录图片清单导出方案

场景说明

指定根目录 /content/drive/MyDrive/imagesFolders/ 下共有22个命名为Folder 1至Folder 22的子文件夹,每个子文件夹内至少存储12张图片,图片格式包含jpg、png等。
根目录结构示例:

Folder 1
Folder 2
Folder 3
Folder 4
...
Folder 22

子文件夹内文件结构示例:

Folder 1/
  image1.jpg
  image2.jpg
  image3.jpg
....
  image12.jpg

Folder 2/
  image1.png
  image2.jpg
  image3.jpg
....
  image12.jpg

Folder 3/
  image1.jpg
  image2.png
  image3.jpg
....
  image12.jpg

需求是提取所有图片的以下信息,导出为xlsx或CSV格式表格:

  • 第一列:图片完整文件名
  • 第二列:图片所属子文件夹名称
  • 第三列:图片文件扩展名
  • 第四列:图片所在文件夹层级

原有代码问题

原有代码仅截取了os.walk返回列表中第二个元素的文件列表,只能拿到第一个子文件夹内的文件名,没有完成全目录遍历、字段结构化提取、文件导出的逻辑。

完整实现代码

首先安装依赖库(如果未安装的话):

pip install pandas openpyxl

执行代码:

import os
import pandas as pd

# 配置根目录路径
ROOT_PATH = '/content/drive/MyDrive/imagesFolders/'
# 配置需要统计的图片格式后缀,可按需扩展
IMAGE_EXTENSIONS = {'.jpg', '.jpeg', '.png', '.bmp', '.gif', '.webp'}

record_list = []

for current_dir, _, files in os.walk(ROOT_PATH):
    # 计算当前目录相对根目录的层级
    rel_path = os.path.relpath(current_dir, ROOT_PATH)
    if rel_path == '.':
        level = 0
        folder_name = '根目录'
    else:
        level = len(rel_path.split(os.sep))
        folder_name = os.path.basename(current_dir)
    
    # 遍历当前目录下所有文件
    for file in files:
        _, ext = os.path.splitext(file)
        # 过滤非图片文件
        if ext.lower() in IMAGE_EXTENSIONS:
            record_list.append({
                '图片名称': file,
                '所属子文件夹': folder_name,
                '文件扩展名': ext.lower().lstrip('.'),
                '文件夹层级': level
            })

# 转换为表格结构
df = pd.DataFrame(record_list)

# 导出为CSV(Excel打开无乱码)
df.to_csv('图片文件清单.csv', index=False, encoding='utf-8-sig')
# 如需导出xlsx格式,注释上面的CSV导出行,取消下面行的注释即可
# df.to_excel('图片文件清单.xlsx', index=False)

print(f'统计完成,共收录{len(df)}条图片记录,文件已导出到当前代码运行目录')

代码说明

  • 会自动遍历根目录下所有层级的文件夹,自动过滤非图片格式的文件
  • 层级计算规则:根目录层级记为0,Folder1这类直接放在根目录下的子文件夹层级记为1,若子文件夹内还有嵌套文件夹,层级依次累加
  • CSV导出默认使用utf-8-sig编码,直接双击用Excel打开不会出现中文乱码
  • 如果需要支持更多图片格式,直接在IMAGE_EXTENSIONS集合中添加对应后缀即可

内容的提问来源于stack exchange,提问作者Md Mahadi Hasan Sany

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 22:33:00