【问题标题】:How can I stop Python's csv.DictWriter.writerows from adding empty lines between rows in Windows?如何阻止 Python 的 csv.DictWriter.writerows 在 Windows 的行之间添加空行?
【发布时间】:2014-03-12 19:22:45
【问题描述】:

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

【问题讨论】:

  • 你如何打开要写入的文件?
  • 为什么是+;你也在读它吗?
  • 调试时看书的时候剩下的啊

标签: python windows csv


【解决方案1】:
  • 在 Python 2 中:始终以二进制模式打开文件; csv.DictWriter()\r\n 行尾:

    with open(filename, 'ab') as outputfile:
        writer = csv.DictWriter(outputfile, fieldnames)
    

    来自csv.writer() documentation

    如果 csvfile 是一个文件对象,则必须在不同的平台上使用“b”标志打开它。

  • 在 Python 3 中:使用 newline='' 打开文件,以便 csv.DictWriter() 可以控制无需翻译的换行符:

    with open(filename, 'a', newline='') as outputfile:
        writer = csv.DictWriter(outputfile, fieldnames)
    

    再次引用相关的csv.writer() documenation

    如果csvfile是文件对象,应该用newline=''打开

    [...]

    如果未指定newline='',则嵌入在引用字段中的换行符将无法正确解释,并且在使用\r\n linendings 的平台上将添加额外的\r。指定newline='' 应该始终是安全的,因为 csv 模块自己(通用)换行处理。

【讨论】:

    猜你喜欢
    • 2015-03-15
    • 1970-01-01
    • 2020-12-05
    • 2021-08-17
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 2018-06-15
    • 1970-01-01
    相关资源
    最近更新 更多