不。以文本模式打开文件,让 Python 为您处理换行符。
使用该open()
函数newline
时,您可以使用关键字参数设置 Python 应如何处理换行符:
将输出写入流时,如果换行符为None
,则写入的任何'\n'
字符都将转换为系统默认的行分隔符,os.linesep
。如果换行符是''
或'\n'
,则不进行翻译。如果换行符是任何其他合法值,'\n'
则写入的任何字符都将转换为给定的字符串。
因此,默认方法是为您的平台编写正确的行分隔符:
with open(outputfilename, 'w') as outputfile:
outputfile.write('\n'.join(output))
做正确的事;在 Windows 上,\r\n
字符被保存而不是\n
.
如果您特别想\n
只编写而不让 Python 为您翻译这些,请使用newline=''
:
with open(outputfilename, 'w', newline='') as outputfile:
outputfile.write('\n'.join(output))
请注意,它与 ;'\x0a'
是完全相同的字符\n
。\r
是\x0d
:
>>> '\x0a'
'\n'
>>> '\x0d'
'\r'