让python Cheetah打印反斜杠

时间:2013-12-11 15:58:57

标签: python-2.7 cheetah

我无法让Python Cheetah为我打印反斜杠。

猎豹版本2.4.4

from Cheetah.Template import Template

my_template = """
Stuff $var1\\$var2
"""

t = Template(source=my_template, searchList = [{"var1" : """\\x\y\z""", "var2" : "some"}])
print str(t)

我希望看到输出

Stuff \\x\y\z\some

但是我得到了

Stuff \x\y\z$var2

在这种情况下,模板应该是什么?

2 个答案:

答案 0 :(得分:0)

一种简单的方法是使用猎豹<%= =>语法

my_template = """
Stuff $var1<%= '\\\\'%>$var2
"""

答案 1 :(得分:0)

代码问题

my_template = """
Stuff $var1\\$var2
"""

首先由Python解析; Python解释加倍的反斜杠并将它们转换为单个反斜杠:my_template变为Stuff $var1\$var2并且传递给模板的是什么。如果你想要加倍的反斜杠,你必须再次加倍它们或使用Python原始字符串。任

my_template = """
Stuff $var1\\\\$var2
"""

my_template = r"""
Stuff $var1\\$var2
"""