Python как преобразовать объект string.template в строку - PullRequest
8 голосов
/ 28 ноября 2011

Это очень просто. Я уверен, что упускаю что-то глупое.

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

Когда я запускаю этот код напрямую в intepreter, я получаю правильный вывод.Но когда я запускаю его из файла. Я получаю <string.Template object at 0x012D33B0>. Как мне преобразовать объект string.Template в строку. Я пробовал str(html). Пока не было инструкции print, которая должна была это делать (преобразование строки)

Ответы [ 3 ]

12 голосов
/ 28 ноября 2011

safe_substitute возвращает в виде строки шаблон с выполненными заменами.Таким образом, вы можете повторно использовать один и тот же шаблон для нескольких замен.Таким образом, ваш код должен быть

print html.safe_substitute(toFirstName='jibin',fromFirstName='Vishnu')
3 голосов
/ 28 ноября 2011

Согласно документам вы должны принять возвращаемое значение 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 
1 голос
/ 28 ноября 2011

результат возвращается методом safe_substitute:

result = html.safe_substitute(toFirstName='jibin',fromFirstName='Vishnu')
print result
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...