避免在字符串中转义双引号

时间:2014-06-17 22:27:06

标签: python string escaping

是否有Python的组件允许我绕过中间引号?在中,您是否可以指定主开始和停止打印调用,以便解释主开始和停止之间的所有内容,无论该元素最初代表什么?

我正在尝试在程序中打印这行有趣的ASCII,这只是由于中间引号弹出而导致错误的行之一:

print"           ./'..|'.|| |||||\```````  "  '''''''/||||| ||.`|..`\."
                                                                      ^
SyntaxError: EOL while scanning string literal

编辑: 在考虑字符串文字的原始解释时,如果三重引号出现在您的行中,您还可以在原始解释中遇到三重引号退出。

2 个答案:

答案 0 :(得分:5)

为什么不使用每端都有"""的{​​{3}}?

>>> print """           ./'..|'.|| |||||\```````  "  '''''''/||||| ||.`|..`\."""
           ./'..|'.|| |||||\```````  "  '''''''/||||| ||.`|..`\.
>>>

请注意,您仍然需要转义字符串中与每端匹配的三重引号:

>>> print """ \""" """
 """
>>>

答案 1 :(得分:4)

另一种方法是简单地将这些行放在一个纯文本文件中然后读取它们,就像在Linux / Unix中那样:

$ cat > my_file.txt
           ./'..|'.|| |||||\```````  "  '''''''/||||| ||.`|..`\.
^D <- control-d means end of file input from the command line

然后使用Python:

with open('/path/my_file.txt') as f:
    print f.read()

应输出:

           ./'..|'.|| |||||\```````  "  '''''''/||||| ||.`|..`\.