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

Python FileNotFoundError求助:运行app.py时无法找到test.json文件

问题描述

文件结构如下:

sample.py
pack/
├─ app.py
└─ test.json

sample.py

from pack import app 

app.print_name()

app.py

import json 

def print_name():
    with open(file=r"test.json",mode='r') as json_file :
        py_dict = json.load(json_file)
    print(py_dict["name"])

print_name()

test.json

{
    "name" : "Rajkumar"
}

直接执行命令python app.py时出现FileNotFoundError,请给出解决方法。


解决方案

问题根源

执行Python脚本时,程序使用的相对路径是基于你执行命令时的当前工作目录,而非脚本文件本身所在的目录。比如你在项目根目录执行python pack/app.py,当前工作目录是根目录,此时test.json的相对路径指向根目录下的文件,但实际该文件在pack目录中,因此触发找不到文件的错误。

可行解决方法

方法1:基于脚本路径动态拼接文件路径(推荐)

修改app.py,通过__file__变量获取脚本自身的绝对路径,再拼接test.json的路径,确保无论从哪个目录执行都能定位到文件:

import json
import os

def print_name():
    # 获取当前脚本(app.py)所在的目录
    script_dir = os.path.dirname(os.path.abspath(__file__))
    # 拼接test.json的完整路径
    json_file_path = os.path.join(script_dir, "test.json")
    with open(file=json_file_path, mode='r') as json_file :
        py_dict = json.load(json_file)
    print(py_dict["name"])

print_name()

方法2:切换到脚本所在目录再执行命令

如果不想修改代码,可先进入pack目录后再执行脚本:

cd pack
python app.py

也可以用单行命令完成:

cd pack && python app.py

方法3:使用绝对路径(不推荐)

直接在open函数中填写test.json的绝对路径,例如:

with open(file=r"/Users/xxx/your-project/pack/test.json", mode='r') as json_file :

此方法移植性差,更换环境或项目位置后需手动修改路径,不建议使用。


内容的提问来源于stack exchange,提问作者Rajkumar V.B

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 21:30:41