python读取配置文件但是内容为空_使用python configparser读取没有键但值条目的配置文件...

我有一个关于

python configparser模块的问题.我正在使用

Python 3.x.

在我的意见缺陷中,我有很多.ini文件,这些文件都是腐败的.例如有没有关于密钥的值,例如

[SESSIONS_id]

Session_a={F34B3238-EEE5-4006-B19C-AB8CC233D8F0}

Session_b={AF2D869B-0FB1-4287-A10E-82B0884E1CFC}

Session_c={F5A7FA65-2107-4B9B-A7C2-8C89C354D4FF}

={083465AF-DC9E-4FF8-A78F-CC1DF17C84B9}

我的问题在于,只存在一个“不允许值”的选项,我已经发现了,但是如何处理.ini文件提供没有键的值?

configparser没有读取它,所以如何修复?

提前致谢

最佳答案 你可以使用comment_prefixes =“=#;”所以以=符号开头的行也将被视为注释:

par = configparser.ConfigParser(comment_prefixes="=#;")

par.read("foo.ini")

print(list((par["SESSIONS_id"]).items()))

[('session_a', '{F34B3238-EEE5-4006-B19C-AB8CC233D8F0}'), ('session_b', '{AF2D869B-0FB1-4287-A10E-82B0884E1CFC}'), ('session_c', '{F5A7FA65-2107-4B9B-A7C2-8C89C354D4FF}')]

或者手动解析文件,首先写入临时文件,然后将其传递给configparser:

import configparser

from tempfile import TemporaryFile

t = TemporaryFile("w+")

with open("foo.ini") as f:

t.writelines(line for line in f if not line.startswith("="))

t.seek(0)

par = configparser.ConfigParser()

par.read_file(t)

print(list((par["SESSIONS_id"]).items()))

[('session_a', '{F34B3238-EEE5-4006-B19C-AB8CC233D8F0}'), ('session_b', '{AF2D869B-0FB1-4287-A10E-82B0884E1CFC}'), ('session_c', '{F5A7FA65-2107-4B9B-A7C2-8C89C354D4FF}')]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值