从系统某处调用脚本时如何导入配置文件?

How to import config file when calling script from somewhere in the system?

假设我有一个文件夹 "myProject",其中包含一个脚本 "mySkript.py" 和一个配置文件 "myConfig.py"。

从 "myProject" 中调用脚本时,我会这样做:

with open("myConfig") as configurationRawData:
    # do something

现在假设我不是从 "myProject" 文件夹而是从 "User/desktop" 调用脚本。在这种情况下,打开命令实际上不会找到 "myConfig"。 我希望让我的 skript 使用它自己的路径作为根路径,并将此 属性 继承给它在执行期间可能调用的所有其他脚本。 有什么想法吗?

有办法做到:

import os

config_file = os.path.join(os.path.dirname(__file__),"myConfig.py")

with open(config_file) as configurationRawData:
    # do something

__file__ 是一个内部 python 变量,表示当前文件的路径(每个示例类似于 C:\Users\user\documents\scripts\mySkript.py for windows)。它导致文件本身,它不依赖于工作目录。

os.path.dirname(__file__) 为您提供当前文件的目录(C:\Users\user\documents\scripts\ 上例)。

os.path.join() 构建了一条您 os 喜欢的路径,因此它将为上面的示例生成 C:\Users\user\documents\scripts\myConfig.py

无论您的操作系统是什么(python 都会为您处理),只要您的两个文件位于同一目录中,它就可以工作。