Clase de plantilla de string en Python

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *