愚蠢的问题(肯定)简单的答案......
我正在使用 configparser 从文件中读取一些字符串。当字符串有 '%' 符号(例如 $%&)时,它会抱怨:
ConfigParser.InterpolationSyntaxError: '%' 后面必须跟 '%' 或 '(', found: "%&'"
有人熟悉这个吗?
谢谢!
愚蠢的问题(肯定)简单的答案......
我正在使用 configparser 从文件中读取一些字符串。当字符串有 '%' 符号(例如 $%&)时,它会抱怨:
ConfigParser.InterpolationSyntaxError: '%' 后面必须跟 '%' 或 '(', found: "%&'"
有人熟悉这个吗?
谢谢!
如果您不想替换环境变量,请使用 RawConfigParser,而不是 ConfigParser。
写两个 %
:
V = ('%%', 'MHz', 'GHz')
结果:
('%', 'MHz', 'GHz')
默认情况下,ConfigParser启用了值的插值。这意味着您可以在属性文件中使用变量。
从 Python 3.2 开始,您可以在构造函数中禁用插值:
configParser = configparser.ConfigParser(interpolation=None)
如果您不想禁用插值,则必须通过在属性文件中放置两个连续的%符号来转义,如文档示例中所示。%%
请注意,这RawConfigParser
是一个遗留变体。从python文档:
考虑使用 ConfigParser 来检查要在内部存储的值的类型。如果不想插值,可以使用 ConfigParser(interpolation=None)。