有没有办法在python中声明一个字符串变量,以便它内部的所有内容都自动转义,或者有它的文字字符值?
我不询问如何使用斜杠来转义引号,这是显而易见的。我要求的是一个通用的方法,使字符串文字中的所有内容,以便我不必手动完成并转义非常大的字符串的所有内容。有人知道解决方案吗?谢谢!
答案 0 :(得分:100)
原始字符串文字:
>>> r'abc\dev\t'
'abc\\dev\\t'
答案 1 :(得分:56)
如果您正在处理非常大的字符串,特别是多行字符串,请注意三引号语法:
a = r"""This is a multiline string
with more than one line
in the source code."""
答案 2 :(得分:6)
没有这样的事情。看起来你想在Perl和shell中使用类似“here documents”的东西,但是Python没有。
仅使用原始字符串或多行字符串意味着需要担心的事情较少。如果您使用原始字符串,那么您仍然需要解决终端“\”并使用任何字符串解决方案,如果它包含在您的数据中,您将不得不担心结束“,”,“”或“”“
也就是说,没有办法让字符串
' ''' """ " \
正确存储在任何Python字符串文字中,无需进行某种内部转义。
答案 3 :(得分:5)
您可以在这里找到Python的字符串文字文档:
http://docs.python.org/tutorial/introduction.html#strings
在这里:
http://docs.python.org/reference/lexical_analysis.html#literals
最简单的例子是使用'r'前缀:
ss = r'Hello\nWorld'
print(ss)
Hello\nWorld
答案 4 :(得分:1)
(假设您不需要直接在Python代码中输入字符串)
解决Andrew Dalke指出的问题,只需将文字字符串键入文本文件然后使用它;
input_ = '/directory_of_text_file/your_text_file.txt'
input_open = open(input_,'r+')
input_string = input_open.read()
print input_string
这将打印文本文件中任何内容的文字文本,即使它是;
' ''' """ “ \
没有乐趣或最佳,但可能很有用,特别是如果你有3页代码需要转义字符。
答案 5 :(得分:0)
如果字符串是变量,请在其上使用。 repr 方法:
>>> s = '\tgherkin\n'
>>> s
'\tgherkin\n'
>>> print(s)
gherkin
>>> print(s.__repr__())
'\tgherkin\n'