Python Configparser和字符串,带%

Python Configparser和字符串,带%,python,Python,愚蠢的问题(当然)答案很简单 我正在使用configparser从文件中读取一些字符串。当字符串包含“%”符号(例如$%”时,它会抱怨: ConfigParser.InterpolationSyntaxError:“%”后面必须跟“%”或“(”,找到:“%&” 有人熟悉这个吗 谢谢!如果您不想替换环境变量,请使用RawConfigParser,而不是ConfigParser。编写两个%: V = ('%%', 'MHz', 'GHz') 结果: ('%', 'MHz', 'GHz') 在较新

愚蠢的问题(当然)答案很简单

我正在使用configparser从文件中读取一些字符串。当字符串包含“%”符号(例如$%”时,它会抱怨:

ConfigParser.InterpolationSyntaxError:“%”后面必须跟“%”或“(”,找到:“%&”

有人熟悉这个吗


谢谢!

如果您不想替换环境变量,请使用RawConfigParser,而不是ConfigParser。

编写两个
%

V = ('%%', 'MHz', 'GHz')
结果:

('%', 'MHz', 'GHz')

在较新的Python版本中,使用

configParser = configparser.ConfigParser(interpolation=None)
这将禁用插值

请注意,
RawConfigParser
是一个旧式变体

考虑改用检查值类型的ConfigParser 内部存储。如果不需要插值,可以使用 ConfigParser(插值=无)


我认为您只需要
%%
来转义它。这是因为
ConfigParser
在默认情况下执行插值,这意味着您可以将文件的其他部分引用为
%(foo)
。请随意添加您喜欢的注释,这些注释处理的是python 2和3之间的行为变化,这显然是不需要的。当我想在Circud中使用时,它会有所帮助