0

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

从“myProject”中调用脚本时,我会执行以下操作:

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

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

4

1 回答 1

2

有一种方法可以做到:

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,对于 windows)。它导致文件本身,它不依赖于工作目录。

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

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

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

于 2020-01-31T07:28:01.390 回答