我正在设置一个脚本,该脚本需要同时从配置中获取多个变量。我将配置设置为:config = configparser.ConfigParser()
。
我尝试使用*
符号来获取这些变量。
[part1]
variable1 = 10
variable2 = 20
我尝试将其用于:
variable = config.get('part1', 'variable*')
但是这种方式行不通。
我寻求一种实现方式,例如将其放入列表中。 预先感谢。
答案 0 :(得分:2)
做
cfg_items = config.items('part1')
以获取本节中的所有配置。
然后使用您定义的正则表达式过滤字典关键字。
您可以一步一步完成
cfg_list = [val for var, val in config.items('part1') if var.startswith('variable')]
答案 1 :(得分:1)
我只会使用列表推导来迭代所需的变量。
to_get = ('variable1', 'variable2')
values = [config.get('part1', x) for x in to_get]
variable*
的问题在于它假定配置文件将仅包含您期望的选项。要明确,只获取想要的内容。
ConfigParser
在Python 3.2或更高版本中支持映射协议:
values = [config['part1'][x] for x in to_get]
这也为使用operator.itemgetter
打开了大门。根据重构的方式,使用范围可能从丑到有用。直接的方法看起来像
values = operator.itemgetter(*to_get)(config['part1'])