En el módulo String, Template Class nos permite crear una sintaxis simplificada para la especificación de salida. El formato utiliza nombres de marcador de posición formados por $con identificadores de Python válidos (caracteres alfanuméricos y guiones bajos). Si rodea el marcador de posición con llaves, puede ir seguido de más letras alfanuméricas sin espacios intermedios. Escribir $$crea un solo $con escape.
Plantilla de string de Python:
La plantilla de string de Python se crea pasando la string de plantilla a su constructor. Admite sustituciones basadas en $. Esta clase tiene 2 métodos clave:
- replace(mapping, **kwds): este método realiza sustituciones utilizando un diccionario con un proceso similar a los objetos de mapeo basados en claves. Los argumentos de palabras clave también se pueden usar para el mismo propósito. En caso de que la asignación basada en claves y los argumentos de palabras clave tengan la misma clave, genera un TypeError . Si faltan claves, devuelve un KeyError .
- safe_substitute(mapping, **kwds): el comportamiento de este método es similar al del método de sustitución, pero no arroja un KeyError si falta una clave, sino que devuelve un marcador de posición en la string de resultados.
El método replace() genera un KeyError cuando no se proporciona un marcador de posición en un diccionario o un argumento de palabra clave. Para las aplicaciones de estilo de combinación de correspondencia, los datos proporcionados por el usuario pueden estar incompletos y el método safe_substitute() puede ser más apropiado; dejará los marcadores de posición sin cambios si faltan datos:
A continuación se muestran algunos ejemplos sencillos.
Ejemplo 1:
Python3
# A Simple Python template example from string import Template # Create a template that has placeholder for value of x t = Template('x is $x') # Substitute value of x in above template print (t.substitute({'x' : 1}))
Producción:
x is 1
El siguiente es otro ejemplo en el que importamos nombres y calificaciones de estudiantes de una lista y los imprimimos usando una plantilla.
Ejemplo 2:
Python3
# A Python program to demonstrate the # working of the string template from string import Template # List Student stores the name and marks of three students Student = [('Ram',90), ('Ankit',78), ('Bob',92)] # We are creating a basic structure to print the name and # marks of the students. t = Template('Hi $name, you have got $marks marks') for i in Student: print (t.substitute(name = i[0], marks = i[1]))
Producción:
Hi Ram, you have got 90 marks Hi Ankit, you have got 78 marks Hi Bob, you have got 92 marks
El siguiente ejemplo muestra la implementación del método safe_substitute.
Ejemplo 3:
Python3
from string import Template template = Template('$name is the $job of $company') string = template.safe_substitute(name='Raju Kumar', job='TCE') print(string)
Producción:
Raju Kumar is the TCE of $company
Tenga en cuenta que no hemos proporcionado ningún dato al marcador de posición «$company», pero no generará un error, sino que devolverá el marcador de posición como una string, como se explicó anteriormente.
Imprimiendo la string de plantilla
El atributo «plantilla» del objeto Plantilla se puede utilizar para devolver la string de plantilla como se muestra a continuación:
Ejemplo:
Python3
t = Template('I am $name from $city') print('Template String =', t.template)
Producción:
Template String = I am $name from $city
Escapando $Signo
El $$ se puede usar para escapar de $ y tratarlo como parte de la string.
Ejemplo:
Python3
template = Template('$$ is the symbol for $name') string = template.substitute(name='Dollar') print(string)
Producción:
$ is the symbol for Dollar
El ${Identificador}
El ${Identificador} funciona de manera similar al de $Identificador. Resulta útil cuando los caracteres de identificación válidos siguen al marcador de posición pero no forman parte del marcador de posición.
Ejemplo:
Python3
template = Template( 'That $noun looks ${noun}y') string = template.substitute(noun='Fish') print(string)
Producción:
That Fish looks Fishy
Otra aplicación para la plantilla es separar la lógica del programa de los detalles de múltiples formatos de salida. Esto hace posible sustituir plantillas personalizadas por archivos XML, informes de texto sin formato e informes web HTML.
Tenga en cuenta que también hay otras formas de imprimir una salida formateada como %d para enteros, %f para flotantes, etc. (Consulte esto para obtener más detalles)
Referencia: https://docs.python.org/3.3/tutorial/stdlib2.html
Este artículo es una contribución de Siddharth Lalwani. Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo y enviarlo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA