首页 > 解决方案 > Python 从每个模块访问配置文件

问题描述

我有以下项目结构:

SmartMirror/
|--config.json
|--main.py
|--widgets/
    |--weather/
        |--__init__.py
        |--weather.py
    |--calendar/
        |--__init__.py
        |--calendar.py

我想从每个小部件 python 文件中访问 c​​onfig.json 文件。

我现在做的是使用以下行

CONFIG_PATH = os.path.join(os.path.dirname(os.path.abspath("config.json")), "config.json")

当我从 SmartMirror 目录运行 main.py 时,它可以工作,但如果我直接从不同的文件夹运行 weather.py,它(可以理解)无法找到 config.json 文件。

我想知道是否有更好、更安全的方法可以从我将来添加的每个小部件或任何其他 python 模块访问配置文件。

标签: pythonconfig

解决方案


现在我发现一种更安全的方法是写 os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))), "config.json")

在此答案dirname中还可以找到避免使用所有这些的更好方法


推荐阅读