Spyder IDE同目录加载JSON文件触发FileNotFoundError报错求助
Spyder读取同目录JSON文件失败解决方案
核心问题原因
- Spyder默认工作目录与脚本所在目录不匹配:Spyder运行代码时的默认工作目录不会自动跟随你打开的py文件路径变化,哪怕JSON和py文件放在同一文件夹,只要当前工作目录不对,相对路径就无法定位到文件。
- 文件名匹配错误:你代码中写的是
open("dbl"),缺少.json后缀,同时如果是macOS/Linux环境,文件名大小写敏感,你提到JSON文件名为DBL,和代码中的小写dbl也会出现匹配失败的问题。
具体解决步骤
- 第一步:修改路径匹配规则,避免相对路径受工作目录影响,直接基于当前脚本路径拼接JSON文件路径,代码示例如下:
import json import os # 获取当前脚本所在文件夹的绝对路径 script_dir = os.path.dirname(os.path.abspath(__file__)) # 拼接得到JSON文件的完整路径,注意匹配你实际的文件名大小写和后缀 json_path = os.path.join(script_dir, "DBL.json") # 推荐用with语法打开文件,会自动关闭文件句柄,指定编码避免中文乱码 with open(json_path, "r", encoding="utf-8") as file: dbl = json.load(file) print(dbl)
- 第二步:修改Spyder运行配置,后续运行脚本自动切换到对应目录:
点击顶部菜单栏「运行」→「配置每文件的运行设置」→勾选「工作目录设置为脚本文件所在目录」,保存后后续运行同目录文件就不会再出现路径不匹配问题。 - 验证方法:如果仍有问题,可在代码开头加一行
print(os.getcwd()),运行后输出的就是当前工作目录,对比该目录是否是你存放py和JSON文件的文件夹即可确认问题。
内容的提问来源于stack exchange,提问作者Yousef
相关产品推荐
相关产品推荐

