Tengo un archivo LaTeX que quiero leer con Python 3 y formato un valor en la cadena resultante. Algo así como:Formatee una cadena que tenga llaves adicionales
...
\textbf{REPLACE VALUE HERE}
...
Pero no he sido capaz de encontrar la manera de hacer esto ya que la nueva forma de hacer la cadena de formato utiliza {val}
notación y puesto que es un documento LaTeX, hay un montón de {}
caracteres adicionales.
he intentado algo así como:
'\textbf{This and that} plus \textbf{{val}}'.format(val='6')
pero me da
KeyError: 'This and that'
¿Alguna pista si string.Template estará en desuso en el futuro? El nuevo formato de python 3 {} parece incluir esto. Para la edición de LaTeX, sin embargo, las plantillas son mucho más prácticas. – levesque
@levesque: Bueno, no ha quedado obsoleto a partir del (pendiente) 3.4, y ofrece una funcionalidad diferente a la del formato '{}', así que creo que se mantendrá por un tiempo. – DSM
Posiblemente una forma más agradable de agregar llaves adicionales en lugar de usar una expresión regular es con 'str.translate'. 'unformatter = str.maketrans ({'{': '{{', '}': '}}'})', luego para corregir una cadena dada, 'goodstring = badstring.translate (unformatter)' (Nota: El la pregunta es sobre Python 3.x; en 2.x, esto solo funcionaría con 'unicode', no' str', porque solo 'unicode' admite mapeos de traducción 1-n). – ShadowRanger