1

我无法让 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

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

4

2 回答 2

0

一个简单的方法是使用 cheetah <%= => 语法

my_template = """
Stuff $var1<%= '\\\\'%>$var2
"""
于 2013-12-13T10:57:40.593 回答
0

代码的问题

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

是不是首先它是由Python解析的;Python 解释双反斜杠并将它们转换为单反斜杠:my_template成为Stuff $var1\$var2传递给 Template 的内容。如果你想要加倍的反斜杠,你必须再次加倍它们或使用 Python 原始字符串。任何一个

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

或者

my_template = r"""
Stuff $var1\\$var2
"""
于 2017-05-07T20:48:39.400 回答