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

如何遍历文件夹并将子目录下指定Excel文件按所属目录分组导出JSON

按目录分组导出Excel文件列表JSON解决方案

修改后完整代码

import os
import json

# 根目录用raw字符串定义,避免路径转义问题
myDir = r"\\iads011n\ContinuousTesting\DailyTesting\REPORTS"
result = []
dir_id = 0

for path, subdirs, files in os.walk(myDir):
    # 收集当前目录下所有符合规则的文件
    matched_files = []
    for file in files:
        # 统一转小写判断后缀,简化多条件判断
        if file.lower().endswith(('.xlsx', '.xls')) and "Release" in file and "Integrated" not in file:
            # 若需要保存文件绝对路径,将下方的file替换为os.path.join(path, file)
            matched_files.append(file)
    # 仅当当前目录存在符合要求的文件时加入结果
    if matched_files:
        result.append({
            "id": dir_id,
            "dir_name": os.path.basename(path),
            "files": matched_files
        })
        dir_id += 1

# 导出时加indent参数生成格式化JSON,可读性更高
with open('XLList.json', 'w', encoding='utf-8') as json_file:
    json.dump(result, json_file, indent=4, ensure_ascii=False)

适配需求的实现说明

  • 遍历维度从全局文件改为按目录处理,每个目录下先完成文件筛选再判断是否录入结果,自动适配1~4个不等的文件数量要求,自动跳过无符合文件的目录
  • 优化了文件后缀判断逻辑,无需分别判断大小写的XLS/XLSX格式
  • 导出JSON新增编码参数和格式化参数,避免中文乱码,输出结构和你需要的分组效果完全匹配
  • 如果需要存储文件的完整绝对路径,只需将matched_files.append(file)修改为matched_files.append(os.path.join(path, file))即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 22:15:03