Python ConfigParser 从外部部分插值
使用Python ConfigParser,是否可以跨外部部分使用插值?我的大脑似乎告诉我,我在某个地方看到了它的可能,但在搜索时我找不到它。
这个例子不起作用,但它可以让我了解我正在尝试做什么。
[section1]
root = /usr
[section2]
root = /usr/local
[section3]
dir1 = $(section1:root)/bin
dir2 = $(section2:root)/bin
请注意,我使用的是 Python 2.4。
With Python ConfigParser, is it possible to use interpolation across foreign sections? My mind seems to tell me I've seen that it's possible somewhere, but I can't find it when searching.
This example doesn't work, but it's to give an idea of what I'm trying to do.
[section1]
root = /usr
[section2]
root = /usr/local
[section3]
dir1 = $(section1:root)/bin
dir2 = $(section2:root)/bin
Note that I'm using Python 2.4.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
在 python 3.2 及更高版本中,这是完全有效的:
编辑:
我刚刚看到您正在使用 python 2.4,所以不,部分插值不能在python 2.4中完成。它是在 python 3.2 中引入的 - 参见第 13.2.5 节 - ConfigParser 值插值。
In python 3.2 and up this is perfectly valid:
Edit:
I just saw that you are using python 2.4, so no, section interpolation cannot be done in python 2.4. It was introduced in python 3.2 - See section 13.2.5 - ConfigParser Interpolation of values.
您确实可以访问特殊情况的 [DEFAULT] 部分。即使对于旧版本的 Python,也可以通过其他部分的插值来访问此处定义的值。
You do have access to the special-case [DEFAULT] section. Values defined here can be accessed via interpolation from other sections even for older versions of Python.
如果您坚持使用 python 2.7 并且需要进行横截面插值,那么使用正则表达式手动完成此操作很容易。
这是代码:
注意事项:
If you're stuck with python 2.7 and you need to do cross-section interpolation it is easy enough to do this by hand using regexps.
Here is the code:
Caveeats:
我在我现在正在处理的项目中遇到了这个问题,我实现了对 ConfigParser.SafeConfigParser 类的快速扩展,其中我覆盖了 get() 类> 功能。我想有些人可能会觉得它有用。
I have run into this in the project I'm working on right now, and I implemented a quick extension to the
ConfigParser.SafeConfigParser
class in which I have overwritten theget()
function. I thought some may find it useful.