ConfigParser配置文件中DEFAULT段的预期用途是什么?
我用ConfigParser已经有一段时间了,主要是用来处理一些简单的配置文件。不过,有一个地方让我一直感到困惑,那就是DEFAULT部分。我不太确定这个部分应该怎么用。我看过文档,但我其实更想看到一些聪明的用法示例,以及它是如何影响文件中其他部分的(一些能真正说明可能性的小例子)。
1 个回答
58
我在网上搜索“windows ini”和“default section”时,找到了一些解释,具体内容可以点击这里查看。简单来说,放在[DEFAULT]部分的内容会自动应用到其他所有部分。举个例子,假设我有一个配置文件叫test1.ini:
[host 1]
lh_server=192.168.0.1
vh_hosts = PloneSite1:8080
lh_root = PloneSite1
[host 2]
lh_server=192.168.0.1
vh_hosts = PloneSite2:8080
lh_root = PloneSite2
我可以用ConfigParser来读取这个文件:
>>> cp = ConfigParser.ConfigParser()
>>> cp.read('test1.ini')
['test1.ini']
>>> cp.get('host 1', 'lh_server')
'192.168.0.1'
不过我注意到,lh_server在两个部分里是一样的;而且我意识到,对于我可能添加的大多数主机来说,这个值都是相同的。所以我可以这样做,创建一个test2.ini:
[DEFAULT]
lh_server=192.168.0.1
[host 1]
vh_root = PloneSite1
lh_root = PloneSite1
[host 2]
vh_root = PloneSite2
lh_root = PloneSite2
虽然这些部分里没有lh_server这个键,但我仍然可以访问它们:
>>> cp.read('test2.ini')
['test2.ini']
>>> cp.get('host 1', 'lh_server')
'192.168.0.1'
想了解更多关于如何在DEFAULT部分使用变量替换来简化INI文件的例子,可以查看链接中的页面。