68

\n我希望在打印从其他地方检索到的字符串时显式显示换行符。因此,如果字符串是 'abc\ndef' 我不希望这种情况发生:

>>> print(line)
abc
def

但取而代之的是:

>>> print(line)
abc\ndef

有没有办法修改打印,或者修改参数,或者完全是另一个函数来完成这个?

4

3 回答 3

115

只需使用编解码器对其进行'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 参考

于 2013-03-13T17:49:52.307 回答
61

使用转义字符停止 python 的另一种方法是使用如下的原始字符串:

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

或者

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

using 的唯一问题repr()是它将您的字符串放在单引号中,如果您想使用引号,它会很方便

于 2013-03-13T17:59:34.217 回答
28

最简单的方法: str_object.replace("\n", "\\n")

如果您想显示所有转义字符,其他方法会更好,但如果您只关心换行符,只需使用直接替换。

于 2013-03-13T18:26:50.640 回答