如何使用Python ConfigParser解析带+分隔符的配置项为列表
使用ConfigParser解析带特殊分隔符的配置项
我有如下格式的配置文件:
[Default] Mykey=123,456,789 +234,567,891 +345,678,912希望使用Python的ConfigParser模块进行解析,使
conf["Default"]["Mykey"]返回一个列表,示例结果为['123,456,789','234,567,891','345,678,912'],请给出实现建议。
嘿,这个需求很常见,我给你两种实用的实现思路:
方法一:解析后手动分割处理
如果只是单个配置项需要处理,直接在获取值之后用字符串分割就行,简单粗暴又有效:
from configparser import ConfigParser # 初始化配置解析器并读取文件 conf = ConfigParser() conf.read('your_config.ini') # 获取原始值,按' +'(空格加加号)分割成列表 mykey_list = conf["Default"]["Mykey"].split(' +') print(mykey_list) # 输出: ['123,456,789','234,567,891','345,678,912']
这种方式不需要额外扩展ConfigParser,代码量少,适合临时处理个别配置项的场景。
方法二:自定义转换器实现自动解析
如果你的配置文件里有很多类似格式的项,推荐给ConfigParser注册一个自定义转换器,让它自动把这类格式的值转换成列表,一次配置全局可用:
from configparser import ConfigParser # 定义自定义转换器函数:按' +'分割字符串返回列表 def list_converter(value): return value.split(' +') # 初始化解析器时传入自定义转换器 conf = ConfigParser(converters={'list': list_converter}) conf.read('your_config.ini') # 使用getlist方法获取转换后的列表 mykey_list = conf["Default"].getlist("Mykey") print(mykey_list) # 输出: ['123,456,789','234,567,891','345,678,912']
这种方式更优雅,后续再遇到同格式的配置项,直接用getlist就能拿到列表,不用重复写分割逻辑。
内容的提问来源于stack exchange,提问作者A.Vintage
相关产品推荐
相关产品推荐

