如何强制Python的file.write()在Windows中使用与Linux相同的新行格式(“\ r \ n”与“\ n”)?
我有简单的代码:
f = open('out.txt','w') f.write('line1\n') f.write('line2') f.close()
代码在Windows上运行,并给出文件大小12 bytes
,而Linux给出11 bytes
原因是新行
在linux中是\n
,为了胜利,它是\r\n
但是在我的代码中,我将新行指定为\n
。 问题是我怎样才能使Python保持新行\n
总是,而不是检查操作系统。
您需要以二进制模式打开文件,即wb
而不是w
。 如果你不这样做,行尾字符会自动转换成操作系统特定的字符。
这里是关于open()
Python引用的摘录。
默认情况下是使用文本模式,可以在写入时将'\ n'字符转换为平台特定的表示forms,然后重新读取。
您仍然可以使用textmode,并使用关键字参数换行强制换行换行
f = open("./foo",'w',newline='\n')
用Python 3.4.2testing。
编辑:这不适用于Python 2.7。