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

如何解决Python加载自定义config.json时的文件路径问题?

问题原因

你遇到的问题确实是工作目录导致的:open("config.json") 里的相对路径是相对于当前运行脚本的工作目录,而非public.py所在的目录。

  • 运行test1.py时,工作目录是base,能直接找到同级的config.json
  • 运行test2.py时,工作目录是base/dir1,脚本会在dir1目录下查找config.json,自然找不到目标文件
解决方案

修改public.py,让它基于自身文件的位置来定位config.json,这样不管哪个脚本调用,路径都能正确解析:

import os
import json

def getCfg(key):
    # 获取当前脚本(public.py)所在的绝对目录
    public_dir = os.path.dirname(os.path.realpath(__file__))
    # 拼接config.json的绝对路径
    config_path = os.path.join(public_dir, "config.json")
    with open(config_path, 'r', encoding='utf-8') as f:
        cfg = json.load(f)
    return cfg[key]
验证说明

修改后:

  • test1.py的代码无需改动,直接运行依然正常
  • test2.py的代码也无需改动,运行时会通过public.py生成的绝对路径找到base目录下的config.json

另外注意:原public.py未显式导入json模块,之前运行test1.py没报错可能是依赖其他模块的隐式导入,显式添加import json能避免潜在的运行错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 09:04:53