Python 如何使用ConfigParser中已定义的变量
我正在Python中使用ConfigParser config.ini是Python 如何使用ConfigParser中已定义的变量,python,configparser,Python,Configparser,我正在Python中使用ConfigParser config.ini是 [general] name: my_name base_dir: /home/myhome/exp exe_dir: ${base_dir}/bin 这里我想exp\u dir变成/home/myhome/exp/bin而不是${base\u dir}/bin 这意味着${base\u dir}将自动替换为/home/myhome/exp您可以使用插值 在核心功能的基础上, SafeConfigParser支持 插值
[general]
name: my_name
base_dir: /home/myhome/exp
exe_dir: ${base_dir}/bin
这里我想exp\u dir
变成/home/myhome/exp/bin
而不是${base\u dir}/bin
这意味着${base\u dir}
将自动替换为/home/myhome/exp
您可以使用插值
在核心功能的基础上,
SafeConfigParser支持
插值这意味着价值观可以改变
包含引用的格式字符串
同一节中的其他值,或
特殊默认部分中的值。
可以在上提供其他默认值
初始化
例如:
[My Section]
foodir: %(dir)s/whatever
dir=frob
long: this value continues
in the next line
将%(dir)解析为该值
在本例中为frob。全部的
引用扩展在上完成
要求
你的例子变成:
[general]
name: my_name
base_dir: /home/myhome/exp
exe_dir: %(base_dir)s/bin
将“${foo}”改为“%(foo)s”。(请参阅并搜索“插值”。这适用于普通ConfigParser或SafeConfigParser。)在Python3中,可以使用
${base_dir}/bin
,并且允许使用其他部分的变量。例如:
[Common]
home_dir: /Users
library_dir: /Library
system_dir: /System
macports_dir: /opt/local
[Frameworks]
Python: 3.2
path: ${Common:system_dir}/Library/Frameworks/
[Arthur]
nickname: Two Sheds
last_name: Jackson
my_dir: ${Common:home_dir}/twosheds
my_pictures: ${my_dir}/Pictures
python_dir: ${Frameworks:path}/Python/Versions/${Frameworks:Python}
谢谢在我的代码中,
%(foo)
之后缺少的s
让我发疯。有时,在你意识到它也在文档中之前,你必须先查看源代码<代码>configparser.configparser(插值=configparser.ExtendedInterpolation())