python configparser 键重复_Python的ConfigParser每个部分的唯一键

我阅读了

the docs的部分,看到ConfigParser返回一个部分中选项的键/值对列表.我认为在一个部分中键不需要是唯一的,否则解析器只会返回一个映射.我围绕这个假设设计了我的配置文件模式,然后遗憾地意识到情况并非如此:

>>> from ConfigParser import ConfigParser

>>> from StringIO import StringIO

>>> fh = StringIO("""

... [Some Section]

... spam: eggs

... spam: ham

... """)

>>> parser = ConfigParser()

>>> parser.readfp(fh)

>>> print parser.items('Some Section')

[('spam', 'ham')]

然后我回去找到了我应该阅读的文档部分:

Sections are normally stored in a

builtin dictionary. An alternative

dictionary type can be passed to the

ConfigParser constructor. For example,

if a dictionary type is passed that

sorts its keys, the sections will be

sorted on write-back, as will be the

keys within each section.

保留我现有的配置文件方案(我现在非常喜欢;)我正在考虑传递一个像上面提到的类似映射的对象来累积值而不是破坏它们.是否有一种更简单的方法来防止我丢失的键/值崩溃?我应该编写一个ConfigParser本身的变体,而不是制作一个疯狂的适配器(如果ConfigParser的实现发生变化可能会破坏)?

我觉得这可能是那些我只看到困难解决方案的“呃”时刻之一.

[编辑:]这是一个更精确的例子,说明我多次使用相同的密钥:

[Ignored Paths]

ignore-extension: .swp

ignore-filename: tags

ignore-directory: bin

我不喜欢逗号分隔列表语法,因为当你将它缩放到很多值时,它很难看.例如,以逗号分隔的50个扩展名列表将不具有特别的可读性.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值