Да, к сожалению, configobj не следует обычным стандартным правилам форматирования Python, поэтому %%
, который в противном случае был бы правильным способом избежать знака процента, завершился неудачей. Похоже, что-то вроде дизайнерского изъяна.
Единственный способ, которым я могу представить буквальную последовательность %(foo)s
в значении configobj, - убедиться, что часть этой последовательности сама генерируется заменой:
>>> import configobj
>>> c= configobject.ConfigObj()
>>> c['foo']= 'bar'
>>> c['pc']= '%'
>>> c['v']= '%(foo)s %(pc)s(foo)s'
>>> c['v']
'bar %(foo)s'