use*_*738 16 python python-2.x python-2.4 configparser python-2.7
使用Python ConfigParser,是否可以跨外部使用插值?我的想法似乎告诉我,我已经看到它可能在某个地方,但我在搜索时找不到它.
这个例子不起作用,但它是为了让我知道我正在尝试做什么.
[section1]
root = /usr
[section2]
root = /usr/local
[section3]
dir1 = $(section1:root)/bin
dir2 = $(section2:root)/bin
Run Code Online (Sandbox Code Playgroud)
请注意,我使用的是Python 2.4.
cho*_*own 13
在python 3.2及更高版本中,这是完全有效的:
[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}
Run Code Online (Sandbox Code Playgroud)
我刚才看到你正在使用的Python 2.4,所以没有,部分插值不能在做Python 2.4中.它是在python 3.2中引入的- 请参阅第13.2.5节 - ConfigParser值的插值.
类
configparser.ExtendedInterpolation用于插值的替代处理程序,用于实现更高级的语法,例如在zc.buildout中使用.扩展插值使用$ {section:option}来表示来自外部区域的值.插值可以跨越多个级别.为方便起见,如果省略section:part,则插值默认为当前节(可能是特殊节中的默认值).例如,上面使用基本插值指定的配置看起来像扩展插值:
Run Code Online (Sandbox Code Playgroud)[Paths] home_dir: /Users my_dir: ${home_dir}/lumberjack my_pictures: ${my_dir}/Pictures也可以获取其他部分的值:
Run Code Online (Sandbox Code Playgroud)[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}
| 归档时间: |
|
| 查看次数: |
6846 次 |
| 最近记录: |