在Python中,打印字符串时可以转义换行符吗?
我想在打印从其他地方获取的字符串时,让换行符 \n
显示出来。比如,如果字符串是 'abc\ndef',我不想看到这样的效果:
>>> print(line)
abc
def
而是想看到这样的效果:
>>> print(line)
abc\ndef
有没有办法修改打印的方式,或者修改传入的参数,或者用其他的函数来实现这个效果呢?
3 个回答
32
最简单的方法是:str_object.replace("\n", "\\n")
如果你想显示所有的转义字符,其他方法会更好。但如果你只关心换行符,那就直接用这个替换方法就行了。
131
只需要用 'string_escape'
编码就可以了。
>>> print "foo\nbar".encode('string_escape')
foo\nbar
在 Python 3 中,'string_escape'
变成了 unicode_escape
。另外,我们需要对字节和 Unicode 多加注意,所以在编码后还需要进行解码:
>>> print("foo\nbar".encode("unicode_escape").decode("utf-8"))
67
另一种让Python停止使用转义字符的方法是使用原始字符串,像这样:
>>> print(r"abc\ndef")
abc\ndef
或者
>>> string = "abc\ndef"
>>> print (repr(string))
>>> 'abc\ndef'
使用repr()
的唯一问题是它会把你的字符串放在单引号里,如果你想使用引号,这样可能会很方便。