2011-11-28 19 views
6

Esto es muy simple. Estoy seguro de que me falta algo tonto.python cómo convertir del objeto string.template a la cadena

fp = open(r'D:\UserManagement\invitationTemplate.html', 'rb')   
html = Template(fp.read()) 
fp.close() 
html.safe_substitute(toFirstName='jibin',fromFirstName='Vishnu') 
print html 

Cuando ejecuto este código en intepreter directamente, obtengo la salida correcta. Pero cuando lo ejecuto desde un archivo. Obtengo <string.Template object at 0x012D33B0>. Cómo convierto de string.Template objeto a cadena. He intentado str(html). ¿Por el adiós no se ha hecho la declaración de impresión para hacer eso (conversión de cadenas)?

Respuesta

10

safe_substituterendimientos, como una cadena, la plantilla con las sustituciones hizo. De esta forma, puede reutilizar la misma plantilla para múltiples sustituciones. Así que el código tiene que ser

print html.safe_substitute(toFirstName='jibin',fromFirstName='Vishnu') 
1

el resultado es devuelto por el método safe_substitute:

result = html.safe_substitute(toFirstName='jibin',fromFirstName='Vishnu') 
print result 
2

Según the docs usted debe tomar el valor de retorno de safe_substitute

fp = open(r'D:\UserManagement\invitationTemplate.html', 'rb')   
html = Template(fp.read()) 
fp.close() 
result = html.safe_substitute(toFirstName='jibin',fromFirstName='Vishnu') 
print result 
Cuestiones relacionadas