从系统某处调用脚本时如何导入配置文件?
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 都会为您处理),只要您的两个文件位于同一目录中,它就可以工作。
假设我有一个文件夹 "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 都会为您处理),只要您的两个文件位于同一目录中,它就可以工作。