在Python中,打印字符串时是否可以转义换行符?

问题描述:

我希望在打印从别处检索到的字符串时,显示新行\n。因此,如果字符串为“ABC \ NDEF”我不希望这样的事情发生:在Python中,打印字符串时是否可以转义换行符?

>>> print(line) 
abc 
def 

,而是这样的:

>>> print(line) 
abc\ndef 

是否有修改打印或修改参数的方式,或者完全可能是另一个功能来完成这个任务?

另一种方式,你可以使用转义字符停止蟒蛇是使用原始字符串是这样的:

>>> print(r"abc\ndef") 
abc\ndef 

>>> string = "abc\ndef" 
>>> print (repr(string)) 
>>> 'abc\ndef' 

使用repr()是,它使得你的字符串中的单引号的唯一proplem,它可以,如果你想使用一个报价得心应手

+0

谢谢,这正是我正在寻找的。选择作为答案,因为你给了两种不同的选择。 – Tyler 2013-03-13 18:33:56

只需使用'string_escape'编解码器对其进行编码即可。

>>> print "foo\nbar".encode('string_escape') 
foo\nbar 

在python3,'string_escape'已成为unicode_escape。此外,我们需要多一点谨慎字节/ unicode的,因此涉及到编码后的解码:

>>> print("foo\nbar".encode("unicode_escape").decode("utf-8")) 

unicode_escape reference

+0

这工作,谢谢一堆。 – Tyler 2013-03-13 18:34:13

+2

如果字符串来自一个DOM对象,可能需要使用'unicode-escape'而不是'string_escape' – 2014-11-30 22:35:19

+2

Python 3中的等价物就像''foo \ nbar“.encode('utf8')。decode 'unicode_escape')'。 – Simon 2016-04-21 07:40:28

简单的方法:如果你想 str_object.replace("\n", "\\n")

其他方法更好显示全部转义字符,但如果你关心的只是换行符,只需使用直接替换。

+0

我认为,但最终是的,我想要所有逃脱字符。 – Tyler 2013-03-13 18:34:43

+0

这不适用于2.7。使用'str_object.replace(r“\ n”,r“\\ n”)''。 – WeirdElfB0y 2017-02-10 10:35:28

+0

不,不,不! Python 2.7和Python 3没有区别。请按照答案的说法做。 '替换(r“\ n”,r“\\ n”)'是无用的,它不会触及换行符。 – alexis 2018-01-27 21:21:49