将属性文件的整个部分解析到python字典中

xmd2e60i  于 2023-02-06  发布在  Python
关注(0)|答案(1)|浏览(128)

我有一个由python脚本使用的属性文件,如下所示:

from configparser import ConfigParser
config = ConfigParser()

config['section'] = {'a': 'value1',
                   'b': 'value2',
                   'c': 'value3',
                   'd': 'value4',
                   'e': 'value1'}

with open('/path/to/propFile_autolaunch.ini', 'w') as f:
    config.write(f)

在我的python脚本中,我想解析section部分中的所有变量,现在我用下面的代码段手动解析:

# imports
from configparser import ConfigParser
propFile = '/path/to/propFile_autolaunch.ini'
propParser = ConfigParser()
propParser.read(propFile)

# parse the variables manually
var_a = propParser.get('section', 'a')
var_b = propParser.get('section', 'b') # then I repeat this for all options

最后我需要解析section节中的所有选项,所以我想知道是否有办法将整个section节解析到一个字典中(例如d_params),这样我就可以用一个命令解析该dict中的所有变量,例如:

for key, val in d_params.items():
    exec(key + '=val')

显然,我可以在python脚本的字典中声明变量,这样我就可以完全避免使用属性文件,但问题是,我的属性文件中有多个部分,所以我希望为任何配置保留它,而不是在python脚本中为单个部分硬编码变量。

bqf10yzr

bqf10yzr1#

如果我理解你的问题,你想在一个操作中把一个. ini文件中的节转换成一个字典,而不是一次构造一个字典。如果是这样,那么我相信下面的代码片段会解决你的问题。具体来说,一个ini文件节可以直接用作dict初始化器,如下所示:

from configparser import ConfigParser
propFile = '/path/to/propFile_autolaunch.ini'
propParser = ConfigParser()
propParser.read(propFile)

# this is the import part...
d_params = dict(propParser["section"])

print(d_params)

输出:

{'a': 'value1', 'b': 'value2', 'c': 'value3', 'd': 'value4', 'e': 'value1'}

相关问题