“%”字符导致字符串替换为locals()时出错

时间:2011-01-19 20:43:19

标签: python locals string-substitution

我尝试使用python中的locals()替换字符串变量,但我可以找到一种方法在字符串中使用字符而不会出错。这是一个具体的例子:

color = colors_generator() #the function return a color

html = """<html><head>
<style>#square{color:%(color)s;width:100%;height:100%;}</style>    
</head>    <body>  <div id="square">  </div>
</body></html>""" % locals()

print "Content-Type: text/html\n"    
print html

结果:TypeError: not enough arguments for format string

问题是 100%中的字符。我该怎么逃避呢?

2 个答案:

答案 0 :(得分:4)

使用%

转义%
html = """<html><head>
<style>#square{color:%(color)s;width:100%%;height:100%%;}</style>    
</head>    <body>  <div id="square">  </div>
</body></html>""" % locals()

答案 1 :(得分:1)

Virhilo已经回答了你的直接问题,但如果你发现你正在构建相当大/复杂的模板,那么可能值得查看完整的模板引擎: