ConfigParser 根据给定值获取键

2 投票
1 回答
6802 浏览
提问于 2025-04-16 20:18

使用ConfigParser,我可以很简单地读取键的值,下面的例子就展示了这一点-

#config.cfg

[NODE]
192.168.31.22 = node22
192.168.31.23 = node23
192.168.31.26 = node26

#PYTHON CODE
config = ConfigParser.RawConfigParser()
config.readfp(open("config.cfg"))
print config.get("NODE", "192.168.31.22")
>>>node22

有时候我需要根据给定的值来读取“键”。有没有什么内置的函数可以根据给定的值来获取键,或者有什么其他的方法可以做到这一点呢?

print config.FUNCTIONXYZ("NODE", "node22")
>>>192.168.31.22

谢谢。

1 个回答

5

不,这里没有直接的方法。内部来说,ConfigParser 会把配置文件读成一个嵌套的字典,在每个部分,键是对应值的,而不是反过来。老实说,我不太明白你为什么想要这样,不过我猜这不是个常见的需求 :)

不过,自己实现这个功能其实很简单:

# items in section 'NODE': key, value pairs
for key, value in config.items('NODE'):
  if value == WHAT_I_NEED:
    print key

如果你在一个大的配置文件中需要进行很多这样的查找,建议先把 items 放到一个字典里。

撰写回答