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

如何批量打开文件夹中的JSON文件?解决FileNotFoundError错误

解决批量读取JSON文件时的FileNotFoundError问题

嘿,这个问题我之前也踩过坑!原因其实很直白:os.listdir() 返回的只是目标文件夹里的纯文件名,不是完整的文件路径。当你用 open(i) 调用时,Python会默认在当前工作目录里找这个文件,而不是你指定的 C:/Users/new 文件夹,自然就找不到啦。

给你几个实用的解决方案:

方法1:拼接完整文件路径(最基础的修复方式)

把文件夹路径和文件名用os.path.join()拼接起来,这样open就能定位到正确的文件位置了:

import os
folder_path = 'C:/Users/new'
files = []
for filename in os.listdir(folder_path): 
    if filename.endswith('.json'): 
        full_file_path = os.path.join(folder_path, filename)  # 跨系统兼容的路径拼接方式
        with open(full_file_path, 'r', encoding='utf-8') as f:
            files.append(f.read())

这里特意用了with语句,它会自动帮你关闭文件,避免手动忘记关闭导致的资源泄漏,比直接open后不管要规范得多。

方法2:用glob模块更省心

glob模块可以直接匹配带路径的目标文件,写起来更简洁,还能省掉判断后缀的步骤:

import glob
import os
folder_path = 'C:/Users/new'
files = []
for json_file in glob.glob(os.path.join(folder_path, '*.json')):
    with open(json_file, 'r', encoding='utf-8') as f:
        files.append(f.read())

glob.glob()会直接返回所有符合*.json规则的完整文件路径,一步到位。

额外小提示

如果你的最终目的是解析JSON内容成Python可操作的数据结构(比如字典),可以把f.read()换成json.load(f),直接得到解析后的结果:

import json
# 接上面的代码,在with代码块里替换成:
parsed_data = json.load(f)
files.append(parsed_data)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:29:28