python如何从string.template对象转换为字符串

时间:2011-11-28 07:16:27

标签: python string templates

这很简单。我相信我错过了一些愚蠢的事情。

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对象转换为string.I已经尝试str(html)。再见不是print语句应该这样做(字符串转换)?

3 个答案:

答案 0 :(得分:12)

safe_substitute 以字符串形式返回,其中包含已进行替换的模板。这样,您可以为多个替换重用相同的模板。所以你的代码必须是

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

答案 1 :(得分:3)

根据the docs,您应该获取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 

答案 2 :(得分:1)

结果由safe_substitute方法返回:

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