如何根据正在执行的脚本的相对路径加载配置文件?

2024-06-02 08:33:28 发布

您现在位置:Python中文网/ 问答频道 /正文

堆栈溢出

以下是我剧本的前几行:

from ConfigParser import SafeConfigParser
from docopt import docopt
import core as scrappy

ARGS = docopt(__doc__, version=scrappy.__version__)
if not ARGS['PATH']:
    ARGS['PATH'] = './'

# load config file
CFG = SafeConfigParser()
if not CFG.read(ARGS['--cfg']):  # call to CFG.read also loads file if it exists
    raise IOError('Configuration file not found.')

我试图读取的配置文件与上面的脚本在同一个目录中。默认情况下,docopt将这个文件的路径设置为./file.conf(我用file.conf测试了这个文件,结果相同)。在

脚本的最后一行总是被调用,表示找不到文件。我通过打印os.getcwd的输出来确认这一点,这表明脚本的执行目录就是终端所指向的目录。在

什么给予?在

如何指向配置文件?在


Tags: 文件pathfromimport目录脚本ifversion
1条回答
网友
1楼 · 发布于 2024-06-02 08:33:28

使用__file__预定义的模块属性。像这样:

module_dir = os.path.dirname(__file__)
CFG = SafeConfigParser()
cfg_full_path = os.path.join(module_dir, ARGS[' cfg'])
if not CFG.read(cfg_full_path): 
    ...

相关问题 更多 >