在终端上作为输出的一部分打印"\n"或换行符

97

我正在终端上运行Python

给定一个字符串 string = "abcd\n"

我想以某种方式print它,这样abcd\n中的换行符'\n'会可见而不是进入下一行

我能否在不修改字符串并添加双斜杠 (\\n) 的情况下做到这一点?

3个回答

161

使用repr函数。

>>> string = "abcd\n"
>>> print(repr(string))
'abcd\n'

这会添加单引号,但这并不总是最好的选择。 - AnnShress

18

如果您控制字符串,还可以使用“Raw”字符串类型:

>>> string = r"abcd\n"
>>> print(string)
abcd\n

10
另一个建议是这样做:
string = "abcd\n"
print(string.replace("\n","\\n"))

但请注意,print函数实际上会将“\n”打印到终端上,而终端会将其解释为换行符。因此,我的解决方案只是将换行符更改为 \ + n。


谢谢。这是唯一适用于我的特定目的的方法——打印出一个PANDAS数据框并添加\noalign和\vskip。 - Gregory Saxton
难道不是反过来吗 - .replace("\n","\n")? - Mordechai
1
当在具有特殊字符的语言(如中文、韩文,甚至带有变音符号的字母等)中替换字符串时,这是更好的解决方案。repr解决方案会导致这些字符变为它们的编码状态。 - Amos Wazana

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接