扩展插值在configparser中不起作用

时间:2017-03-16 16:37:43

标签: python python-3.x configparser

我尝试在python 3.6或python 3.5.1

中使用标准库中的configparser模块

我的ini文件如下所示:

[common]
domain = http://some_domain_name:8888
about = about/
loginPath = /accounts/login/?next=/home
fileBrowserLink = /filebrowser
partNewDirName = some_dir

[HUE_310]
partNewFilePath = ${common:domain}

我的“主要”程序如下所示:

from configparser import ConfigParser

parser = ConfigParser()
parser.read('configfile.ini')

lll = parser.get('HUE_310', 'partNewFilePath')
print(lll)

而是http://some_domain_name:8888我得到了${common:domain}

我使用Pycharm社区作为我的IDE。我使用virtualenv。

我不知道我的代码有什么问题......

1 个答案:

答案 0 :(得分:6)

如果你想要扩展插值,你必须通过调用来创建configparser.ExtendedInterpolation类的实例,,然后在你使用interpolation=关键字参数时使用它创建ConfigParser实例,如下所示:

from configparser import ConfigParser, ExtendedInterpolation

parser = ConfigParser(interpolation=ExtendedInterpolation())
parser.read('configfile.ini')

lll = parser.get('HUE_310', 'partNewFilePath')
print(lll)  # -> http://some_domain_name:8888