Python 解析字符串并用其值替换字符串的最佳方法是什么?

Python 解析字符串并用其值替换字符串的最佳方法是什么?,python,templates,string-formatting,replace,Python,Templates,String Formatting,Replace,我可能有一根绳子 """Hello, %(name)s, how are you today, here is amount needed: %(partner_id.account_id.debit_amount)d """ 对于这样的模板,最好的解决方案是什么?我可能需要将正则表达式和eval结合起来,输入字符串可能会不同,比如$partner\u id.account\u id.debit\u amount$——目前我保留为python字符串格式—只是为了测试。如果您要进行复杂的模板制

我可能有一根绳子

"""Hello, %(name)s,
how are you today, 
here is amount needed: %(partner_id.account_id.debit_amount)d
"""

对于这样的模板,最好的解决方案是什么?我可能需要将正则表达式和
eval
结合起来,输入字符串可能会不同,比如
$partner\u id.account\u id.debit\u amount$
——目前我保留为python字符串格式—只是为了测试。

如果您要进行复杂的模板制作,您可以考虑使用类似的高级模板引擎。Python在Python 2.6和3.0中对字符串实现了一个新的.format()方法。查看此政治公众人物:

它比%运算符更强大、更灵活,内置于python中:

以下是政治公众人物的一些例子:

"My name is {0}".format('Fred')
"My name is {0.name}".format(open('out.txt', 'w'))
"My name is {0[name]}".format({'name':'Fred'})

它可能足以满足您的需要,如果没有,请查看其他人提到的Jinja这样的模板引擎。

如果您正在寻找简单的东西,请尝试查看我经常使用它来快速轻松地进行模板制作,而无需安装额外包的开销


还有一种新方法。

我建议使用模板引擎,而不是像上一个问题中所讨论的那样手动滚动您自己的代码:最喜欢的模板引擎问题现在已被删除:(感谢Ben的提醒。我已删除了链接。