如果考虑到carriage return = \r和line feed = \nPython 3.5.1 (v3.5.1:37a07cee5969, Dec 6 2015, 01:38:48) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> '{:02x}'.format(ord('\n'))
'0a'
>>> '{:02x}'.format(ord('\r'))
'0d'
使用open('filename','w').write('text\n')时如何避免写入回车?
在交互模式下,您可以执行以下操作:>>> open('filename','w').write('text\n')
5
>>> for c in open('filename','r').read():
... print('{:02x}'.format(ord(c)))
...
74
65
78
74
0a
这表示只写了换行符,因此应该是5字节长。-rw-r--r-- 1 djuric 197121 6 Jul 15 21:00 filename
^
它实际上有6个字节长。现在,这可能是一个“Windows事件”,但是当您在Notepad++中打开该文件,并打开View>;Show Symbols>;Show All Characters时,您可以看到回车。
按CTRL+H并使用扩展搜索模式将其替换为空后,只剩下换行符。保存文件后,文件中只有换行符,文件长度为5字节。-rw-r--r-- 1 djuric 197121 5 Jul 15 20:58 filename1
^
那么,为什么Notepad++能够在不返回回车的情况下保存换行,而python却不能呢?