比较configparser fi的子节

2024-09-28 01:29:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚开始使用ConfigParser,它看起来很有趣,但是我得到了一个我有一个想法。我试着比较我的配置文件.ini第一部分。在

演示示例配置文件.ini公司名称:

[DefaultSection]
key1    : value1
key2    : value2
key3    : value3
.
.
.
keyn    : valuen

[Section2]
key1    : value5
key2    : value6
key3    : value7
.
.
.
keyn    : valuen

[Section3]
key1    : value8
key2    : value9
key3    : value10
.
.
.
keyn    : valuen

我要做的是将每个部分与默认部分进行比较,看看各小节之间是否存在任何差异。我想看看其余部分的键是否与我不关心的默认键匹配。如果密钥不匹配,则应打印丢失的密钥:

例如:section(n) is missing key(5)

我正在使用双字典,我认为这是找到差异的最合适的方法,但我的技能有限,我无法找到解决办法。在

加载和解析数据的代码示例:

^{pr2}$

我想将字典1的所有键与配置文件.ini. 当然,这个脚本应该是通用的,能够处理n个字典和n个键。在

谢谢你们所有的时间和努力来帮助我。在


Tags: 名称示例字典配置文件密钥公司差异ini
1条回答
网友
1楼 · 发布于 2024-09-28 01:29:27

如果您使用特殊的DEFAULT部分,那么configparser将在一个节中为每个丢失的键提供一个在您读取文件时默认的键。这可能不是你想要的,但是如果你创建你的文件

config = ConfigParser.ConfigParser()

config.set('DEFAULT', 'key1', "value1")
config.set('DEFAULT', 'key2', "value2")
config.set('DEFAULT', 'key3', "value3")

config.add_section('Section2')
config.set('Section2', 'key1', "value5")
config.set('Section2', 'key2', "value2")

with open("configurationFile.ini", 'w') as f:
    config.write(f)

然后你就可以得到这样不同的钥匙了

^{pr2}$

请注意,Section2的未定义的key3采用默认值,因此不会报告为不同。但是key2,它被显式地分配了一个不同的值will。在

config.sections()为您提供了每个部分,但除外,因此不必对默认键与它们本身进行比较。在

相关问题 更多 >

    热门问题