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

我尝试使用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/htmln"    
print html
结果:
TypeError: not enough arguments for format string
问题是100%的%字符。我该怎么逃避呢?     
已邀请:
%%with%
html = """<html><head>
<style>#square{color:%(color)s;width:100%%;height:100%%;}</style>    
</head>    <body>  <div id="square">  </div>
</body></html>""" % locals()
    
Virhilo已经回答了你的直接问题,但如果你发现你正在构建相当大/复杂的模板,那么可能值得查看一个完整的模板引擎: http://docs.python.org/library/string.html http://jinja.pocoo.org/ http://www.makotemplates.org/     

要回复问题请先登录注册