gpt4 book ai didi

python - 无法读取包含 [] 的配置文件部分

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

已编辑帖子

我无法读取包含 [] 的配置文件部分...例如,如果 ini 文件中的任何部分类似于 [c:\\temp\\foo[1].txt] 比我的脚本无法读取该部分..

config.read(dst_bkp)
for i in config.sections():
config.get(i,'FileName')

谢谢,维涅什

最佳答案

假设您使用 ConfigParser.RawConfigParser 模块的内置子类:这是不支持的。即使在 newest revision ,节标题的正则表达式就是

SECTCRE = re.compile(
r'\[' # [
r'(?P<header>[^]]+)' # very permissive!
r'\]' # ]
)

没有转义机制,节标题简单地在第一个右括号结束。您应该只使用没有“特殊字符”的简单字符串作为标题名称,而不是像文件名这样的任意字符串。

编辑:关于 Python 3,equivalent code已经重新组织了一下,但正则表达式是一样的:

_SECT_TMPL = r"""
\[ # [
(?P<header>[^]]+) # very permissive!
\] # ]
"""

编辑 2: 您可以按照其他解决方案中的建议创建自己的子类,或者直接修补 RawConfigParser:

import ConfigParser
import re
ConfigParser.RawConfigParser.SECTCRE = re.compile(r"\[(?P<header>.+)\]")

但是,我建议不要执行任何这些操作并避免使用方括号。如果节标题中有方括号,则您的配置文件可能无法移植。

关于python - 无法读取包含 [] 的配置文件部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3448505/

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