不。以文本模式打开文件,让 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'