python 中是否有向字符串格式添加额外的转换类型?
使用的标准转换类型%
基于字符串的格式化是这样的s
对于字符串,d
我想要做的是添加一个新字符,我可以为其指定一个自定义处理程序(例如 lambda 函数),该处理程序将返回要插入的字符串。
例如,我想添加h
作为转换类型,指定应转义字符串以便在 HTML 中使用。举个例子:
#!/usr/bin/python
print "<title>%(TITLE)h</title>" % {"TITLE": "Proof that 12 < 6"}
这将使用cgi.escape
on the "TITLE"
产生以下输出:
<title>Proof that 12 < 6</title>
您可以为 html 模板创建自定义格式化程序:
import string, cgi
class Template(string.Formatter):
def format_field(self, value, spec):
if spec.endswith('h'):
value = cgi.escape(value)
spec = spec[:-1] + 's'
return super(Template, self).format_field(value, spec)
print Template().format('{0:h} {1:d}', "<hello>", 123)
请注意,所有转换都发生在模板类内部,不需要更改输入数据。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)