【问题标题】:Getting python Cheetah to print backslash让 python Cheetah 打印反斜杠
【发布时间】:2013-12-11 15:58:56
【问题描述】:

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

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

【问题讨论】:

    标签: python-2.7 cheetah


    【解决方案1】:

    一个简单的方法是使用 cheetah 语法

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

    【讨论】:

      【解决方案2】:

      代码的问题

      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
      """
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-05-05
        • 1970-01-01
        • 2019-01-13
        • 2013-11-10
        • 1970-01-01
        • 2022-08-07
        • 2023-03-18
        • 1970-01-01
        相关资源
        最近更新 更多