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

Sea*_* W. 4 python windows csv

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

Mar*_*ers 14

  • 在Python 2中:始终以二进制模式打开文件; csv.DictWriter()写\r\n行结尾:

    with open(filename, 'ab') as outputfile:
        writer = csv.DictWriter(outputfile, fieldnames)
    
    Run Code Online (Sandbox Code Playgroud)

    从csv.writer()文档:

    如果csvfile是一个文件对象,则必须在平台上打开"b"标志,这会产生影响.

  • 在Python 3中:使用newline=''so 打开文件csv.DictWriter()可以控制在没有翻译的情况下编写的换行符:

    with open(filename, 'a', newline='') as outputfile:
        writer = csv.DictWriter(outputfile, fieldnames)
    
    Run Code Online (Sandbox Code Playgroud)

    再次引用相关csv.writer()文件:

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

    [...]

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