ConfigParser 根据给定值获取键
使用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
放到一个字典里。