38

我已经使用 ConfigParser 很长一段时间来进行简单的配置。困扰我很久的一件事是 DEFAULT 部分。我不确定什么是合适的用途。我已经阅读了文档,但我真的很想看到一些关于它使用的巧妙示例以及它如何影响文件中的其他部分(真正说明了可能发生的事情的类型)。

4

1 回答 1

53

我通过谷歌搜索“windows ini”“默认部分”在这里找到了解释。摘要:您在 [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 文件的示例。

于 2008-09-24T00:49:13.460 回答