小编典典

如何阻止Python的csv.DictWriter.writerows在Windows中的行之间添加空行?

python

当我csv.DictWriter.writerows在Windows上使用Python时,在行之间添加空换行符。如何停止呢?该代码在Linux上运行良好。


阅读 220

收藏
2020-12-20

共1个答案

小编典典

  • 在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\nlinendings的平台\r上将添加额外的字符。newline=''由于csv模块会执行自己的(通用)换行处理,因此始终应该安全地指定。

2020-12-20