如何在python中编写string文字,而不必转义它们?

有没有办法在python中声明一个stringvariables,使得它里面的所有内容都被自动转义,或者是它的文字字符值?

不是问如何用斜杠来避免引号,这很明显。 我所要求的是一个通用的方法,使string文字中的所有东西,所以我不必手动通过和逃离一切非常大的string。 任何人都知道解决scheme? 谢谢!

原始string文字:

>>> r'abc\dev\t' 'abc\\dev\\t' 

如果您处理的是非常大的string,特别是多行string,请注意三引号语法:

 a = r"""This is a multiline string with more than one line in the source code.""" 

哪有这回事。 它看起来像你想在Perl和shell中的“here文件”,但Python没有。

使用原始string或多行string只意味着有更less的事情要担心。 如果你使用一个原始string,那么你仍然需要解决一个terminal“\”和任何string解决scheme,你将不得不担心closures“,”,“”或“”“,如果它包含在您的数据。

也就是说,没有办法得到string

  ' ''' """ " \ 

正确存储在任何Pythonstring文字没有内部转义的某种。

(假设你不需要从Python代码中直接inputstring)

为了解决Andrew Dalke指出的问题,只需将文本stringinput到文本文件中,然后使用它;

 input_ = '/directory_of_text_file/your_text_file.txt' input_open = open(input_,'r+') input_string = input_open.read() print input_string 

这将打印文本文件中的任何文本文本,即使它是;

  ' ''' """ “ \ 

没有趣味或最佳,但可以是有用的,尤其是如果你有3页的代码需要字符转义。

你会在这里findPython的string文字:

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