ConfigParser使用的配置文件中,DEFAULT部分的预期用途是什么?

41

我已经使用ConfigParser相当长一段时间来处理简单配置。有一件事情困扰了我很久,那就是DEFAULT部分。我不太确定什么是适当的用法。我已经阅读了文档,但我真的想看到一些聪明的使用示例,以及它如何影响文件中的其他部分(真正说明可能发生的事情)。

1个回答

57

我通过谷歌搜索"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键,我仍然可以访问它们。

尽管这些部分没有lh_server键,我仍然可以访问它们:

>>> cp.read('test2.ini')
['test2.ini']
>>> cp.get('host 1', 'lh_server')
'192.168.0.1'

阅读链接页面,进一步了解在DEFAULT部分使用变量替换以进一步简化INI文件的示例。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接