Python 2.7 documentation(以及Python 3 documentation)包含有关os.linepath
函数的以下行:
在打开文件时,不要将os.linesep用作行终止符 在文本模式下(默认);
为什么?它与在二进制模式下使用它有何不同?
答案 0 :(得分:19)
当您以文本模式打开文件时,您写入文件的任何\n
都将转换为您正在使用的平台的相应行。
因此,例如,如果您在os.linesep
为'\r\n'
的Windows上,当您将其写入文件时,\n
将自动转换为\r\n
并且您最终会将\r\r\n
写入您的文件。
例如:
>>> import os
>>> os.linesep
'\r\n'
>>> with open('test.txt', 'w') as f:
... f.write(os.linesep)
...
>>> with open('test.txt', 'rb') as f:
... print repr(f.read())
...
'\r\r\n'