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

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

>>> print(line)
abc
def

而是这样:

>>> print(line)
abc\ndef

有没有一种方法来修改打印,或修改参数,或可能完全另一个函数,以实现这一点?

102542 次浏览

'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 引用

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

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

或者

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

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

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

如果希望显示 所有转义字符,其他方法更好,但如果只关心换行符,那么只需使用直接替换即可。