【问题标题】:How to import config file when calling script from somewhere in the system?从系统某处调用脚本时如何导入配置文件?
【发布时间】:2020-01-31 07:23:12
【问题描述】:

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

当从“myProject”中调用脚本时,我会这样做:

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

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

【问题讨论】:

标签: python cwd


【解决方案1】:

有办法做到这一点:

import os

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

with open(config_file) as configurationRawData:
    # do something

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-26
    相关资源
    最近更新 更多