保留“\ n”

时间:2011-02-25 00:32:43

标签: python

>>> t = "first%s\n"
>>> t = t %("second")
>>> print t
firstsecond

无论如何,我可以在最后保留“\ n”并输出“firstsecond \ n”作为输出吗?

3 个答案:

答案 0 :(得分:7)

你需要逃避斜杠

>>> t = "first%s\\n"
>>> t = t %("second")
>>> print t

或使用原始字符串:

>>> t = r"first%s\n"
>>> t = t %("second")
>>> print t   

答案 1 :(得分:3)

print "firstsecond\n"显示“firstsecond”,光标将被推送到下一个新行。所以你没有看到任何反斜杠后跟n。因为字符串的显示意味着会解释特殊字符,例如 \ n

repr()会阻止解释,因此print repr("firstsecond\n")会显示 firstsecond \ n

那么,你想要什么? :

  • t “firstsecond \ n”并显示 repr(t)以验证是否存在 > \ n 在其中?

  • t “firstsecond \\ n”,以便print t显示 firstsecond \ n

请参阅:

t = "first%s\n"
print repr(t),len(t)
t = t %("second")
print repr(t),len(t)

print '-------------------'

t = "first%s\\n" # the same as r"first%s\n"
print repr(t),len(t)
t = t %("second")
print repr(t),len(t)

结果

'first%s\n' 8
'firstsecond\n' 12
-------------------
'first%s\\n' 9
'firstsecond\\n' 13

但不要误解:当有这样的显示时:

'first%s\\n'

两个反斜杠\\表示一个反斜杠的值。两个\\仅出现在屏幕上,以转义的方式表示反斜杠的值。否则,无法区分由\后跟n和唯一字符\n

组成的两个字符。

答案 2 :(得分:2)

根据您的具体需要,您还可以查看repr()。

>>> s = "firstsecond\n"
>>> print repr(s)
'firstsecond\n'