gpt4 book ai didi

python - 使用python configparser读取没有键但有值条目的配置文件

转载 作者:太空宇宙 更新时间:2023-11-03 11:25:37 25 4
gpt4 key购买 nike

我有一个关于 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}')]

关于python - 使用python configparser读取没有键但有值条目的配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34595493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com