从另一个ini节引用变量

8 投票
2 回答
4212 浏览
提问于 2025-04-18 15:26

可以在一个ini文件的某个部分引用另一个部分的变量吗?

我知道你可以这样做:

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

但是如果我有两个部分,想要引用另一个部分的变量,那该怎么做呢?

[env]
name =  DEV

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

谢谢

2 个回答

0

Python 2.x不支持从其他部分进行交叉引用。

不过,你可以使用[DEFAULT]。这个部分里的定义是可以共享的,特别适合这样使用。

11

可以查看关于 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'])

撰写回答