【发布时间】:2013-11-08 16:46:09
【问题描述】:
python 中有没有为字符串格式添加额外的转换类型?
在基于% 的字符串格式中使用的标准转换类型是s 用于字符串,d 用于小数等。我想做的是添加一个我可以指定的新字符将返回要插入的字符串的自定义处理程序(例如 lambda 函数)。
例如,我想添加h 作为转换类型,以指定字符串应该转义以便在HTML 中使用。举个例子:
#!/usr/bin/python
print "<title>%(TITLE)h</title>" % {"TITLE": "Proof that 12 < 6"}
这将在"TITLE" 上使用cgi.escape 来产生以下输出:
<title>Proof that 12 < 6</title>
【问题讨论】:
-
您不能为字符串格式添加新的占位符类型,但您始终可以将输入数据放入一个函数中,该函数将以字符串形式返回您想要的输出。
'%(TITLE)s' % {'TITLE': my_html_formatter( 'Proof that 12 < 6' )} -
谢谢,我知道了。我有一堆不同的字符串要传入,我希望能想出一个比单独将它们全部传递给函数更好的方法。我还希望能够以不同的格式多次使用相同的键(例如“TITLE”)。
标签: python printf string-formatting