在导入的python文件中使用函数时获取相关路径

时间:2017-05-11 09:09:26

标签: python import module path

我的结构是这样的:

--- file1.py

--- file2.py

--- directory1中

  ---file3.py

---工具

  ---setting_manager.py

  ---settings.json

这里的directory1和工具是两个目录...... 在setting_manager.py中,我有一个从settings.json读取一些设置的函数。

with open('settings.json', 'r') as f:
    properties = json.load(f)
    return properties

在file1 file2 file3中,我像这样导入setting_manager:

from tools import setting_manager

但是当我需要在file1 file2和file3中使用此函数时。它似乎直接python加载功能,无法找到我的' settings.json'。例如,在file1中使用时,我需要设置

with open('tools/settings.json', 'r') as f:

然后它可以工作。但在file3中我需要设置

with open('../tools/settings.json', 'r') as f:

有没有办法启用我的需求?

1 个答案:

答案 0 :(得分:2)

我认为您可以将setting.py文件中的动态路径定义为:

import sys, os

pathname = os.path.join(dir, '/relative/path/to/tools')

然后,您可以在要使用基本路径的任何文件中使用此全局变量。

希望这会有所帮助。

感谢。