You need to enable JavaScript to run this app. 如何从所有子目录中一次性读取全部JSON文件?
优惠活动
大模型
产品
解决方案
定价
更多

如何从所有子目录中一次性读取全部JSON文件?

多级子目录批量读取JSON文件实现方案

你当前使用的glob.glob("/./*.json")只能匹配对应目录下第一层的JSON文件,无法遍历子目录内容,可按以下两种方案实现需求:


方案1:使用glob递归模式(Python 3.5及以上版本支持)

开启recursive=True参数,搭配**通配符即可匹配任意层级子目录下的文件:

import glob
import json

# 替换路径前缀为你需要遍历的根目录,**会匹配所有层级子目录
json_path_list = glob.glob("./**/*.json", recursive=True)

# 批量读取所有JSON内容的示例
json_data_list = []
for path in json_path_list:
    with open(path, "r", encoding="utf-8") as f:
        json_data_list.append(json.load(f))
  • 注意:**通配符仅在recursive=True时生效,若需要遍历绝对路径下的内容,将前缀替换为对应绝对路径即可,例如/data/project/**/*.json。

方案2:使用pathlib实现(Python 3.4及以上版本推荐)

pathlib的rglob方法默认递归匹配所有子目录,路径处理逻辑更简洁:

from pathlib import Path
import json

# 替换为你要遍历的根目录路径
root_path = Path("./")
json_path_list = list(root_path.rglob("*.json"))

# 批量读取所有JSON内容的示例
json_data_list = []
for path in json_path_list:
    with open(path, "r", encoding="utf-8") as f:
        json_data_list.append(json.load(f))
  • 优势:面向对象的路径处理方式,不需要额外配置递归参数,适配不同操作系统的路径规则更省心。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 20:09:02