在Python中自动读取配置值

我想将
Python中的配置文件完全读入数据结构而不明确地“获取”每个值.这样做的原因是我打算以编程方式修改这些值(例如,我将有一个变量,表示我想修改[Foo] Bar = 1为[Foo] Bar = 2),意图是根据我的更改编写新的配置文件.

目前,我正在手工阅读所有数值:

parser = SafeConfigParser()
parser.read(cfgFile)
foo_bar1 = int(parser.get('Foo', 'Bar1'))
foo_bar2 = int(parser.get('Foo', 'Bar2'))

我希望拥有的东西(在谷歌方面没有找到太多)是一种将它们读入列表的方法,可以轻松识别它们,以便我可以将该值从列表中拉出并进行更改.

基本上将其引用为(或类似):

config_values = parser.read(cfgFile)
foo_bar1      = config_values('Foo.bar1')

最佳答案

import sys
from ConfigParser import SafeConfigParser

parser = SafeConfigParser()
parser.readfp(sys.stdin)

config = dict((section, dict((option, parser.get(section, option))
                             for option in parser.options(section)))
              for section in parser.sections())
print config

输入

[a]
b = 1
c = 2
[d]
e = 3

Output

{'a': {'c': '2', 'b': '1'}, 'd': {'e': '3'}}
点赞