当我在Windows上使用Python的csv.DictWriter.writerows
时,在行之间添加空的换行符。 我该如何阻止? 该代码在Linux上正常工作。
在Python 2中:始终以二进制模式打开文件; csv.DictWriter()
写入\r\n
行尾:
with open(filename, 'ab') as outputfile: writer = csv.DictWriter(outputfile, fieldnames)
从csv.writer()
文档 :
如果csvfile是一个文件对象,那么必须在平台上用“b”标志打开,这是有所作为的 。
在Python 3中:用newline=''
打开文件,这样csv.DictWriter()
就可以控制没有翻译的新行:
with open(filename, 'a', newline='') as outputfile: writer = csv.DictWriter(outputfile, fieldnames)
再次引用相关的csv.writer()
文件 :
如果csvfile是一个文件对象,应该用
newline=''
打开[…]
如果未指定
newline=''
,嵌入在引用字段内的换行符将不会被正确解释,并且在使用\r\n
列表的平台上写入额外的\r
将被添加。 指定newline=''
应该总是安全newline=''
,因为csv模块执行自己的(通用)换行处理。