来自另一个ini部分的引用变量

时间:2014-07-31 00:51:45

标签: configuration-files ini

是否可以从另一个部分引用ini中的变量?

我知道你可以做以下事情

[env]
dir  = /home/a
dir2 = %(dir)s/b

但如果我有两个部分想要引用该部分的变量,会发生什么?

[env]
name =  DEV

[dir]
home = /home/<name from env here>/scripts

由于

2 个答案:

答案 0 :(得分:6)

请参阅Python 3's configparser上的文档。使用扩展插值创建解析器。使用${section:option}语法引用其他部分的选项。

from configparser import ConfigParser, ExtendedInterpolation

parser = ConfigParser(interpolation=ExtendedInterpolation())
parser.read_string('''[env]
name = DEV

[dir]
home = /home/${env:name}/scripts
''')

print(parser['dir']['home'])

答案 1 :(得分:0)

Python 2.x不支持交叉引用。来自另一部分。

但你可以使用[DEFAULT]。本节中的定义可以特别共享。