You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python csv.writer写入CSV时每行后空行的原因及解决

为什么Python写入CSV后每行末尾会出现空行?

我来帮你拆解这个问题的原因,以及给出简单的解决办法:

问题根源

这个空行问题大多出现在Windows系统中,核心原因是换行符的双重处理:

  • Python的csv模块在写入每行时,会自动添加符合CSV标准的行结束符(通常是\r\n);
  • 当你用默认文本模式'w'打开文件时,Windows的文件系统会把代码里的\n自动转换成\r\n;
  • 两者叠加后,每行结尾就变成了\r\r\n,用普通文本编辑器打开时就会显示出额外的空行。

解决方法

有两种简单可靠的方式可以避免这个问题:

方法1:打开文件时指定newline=''(Python 3+推荐)

修改文件打开语句,添加newline=''参数,让文件对象不自动处理换行符,完全交给csv模块来生成正确的行结束符:

import csv

z = [["test","dus"],["dus","ta"]]
with open('test.csv','w', newline='') as out:
    csv_out = csv.writer(out)
    csv_out.writerow(['input','output'])
    for row in z:
        csv_out.writerow(row)

方法2:用二进制模式打开文件(兼容Python 2)

如果你还在使用Python 2,或者需要兼容旧代码,可以用二进制模式'wb'打开文件,这样系统不会对换行符做任何转换:

import csv

z = [["test","dus"],["dus","ta"]]
with open('test.csv','wb') as out:
    csv_out = csv.writer(out)
    csv_out.writerow(['input','output'])
    for row in z:
        csv_out.writerow(row)

补充说明

在Linux或macOS系统中,默认换行符是\n,不会出现这种双重转换的问题,所以你大概率不会遇到这个空行困扰。

内容的提问来源于stack exchange,提问作者user3646742

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 03:53:08