Подтвердить что ты не робот

Отформатируйте строку, в которой есть дополнительные фигурные скобки

У меня есть файл LaTeX, который я хочу читать с Python 3 и форматировать значение в результирующую строку. Что-то вроде:

...
\textbf{REPLACE VALUE HERE}
...

Но я не смог понять, как это сделать, поскольку новый способ форматирования строк использует нотацию {val}, а так как это документ LaTeX, есть много лишних символов {}.

Я пробовал что-то вроде:

'\textbf{This and that} plus \textbf{{val}}'.format(val='6')

но я получаю

KeyError: 'This and that'
4b9b3361

Ответ 1

Метод 1, который я на самом деле делал: вместо этого используйте string.Template.

>>> from string import Template
>>> Template(r'\textbf{This and that} plus \textbf{$val}').substitute(val='6')
'\\textbf{This and that} plus \\textbf{6}'

Способ 2: добавьте дополнительные фигурные скобки. Это можно сделать с помощью регулярного выражения.

>>> r'\textbf{This and that} plus \textbf{val}'.format(val='6')
Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
KeyError: 'This and that'
>>> r'\textbf{{This and that}} plus \textbf{{{val}}}'.format(val='6')
'\\textbf{This and that} plus \\textbf{6}'

(возможно). Метод 3: используйте пользовательскую строку. У меня не было причин делать это самостоятельно, поэтому я не знаю достаточно подробностей, чтобы быть полезными.