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

Python CSV模块writerow导出CSV时出现空行问题求助

解决CSV导出每行有空行的问题

问题根源

你遇到的空行问题,本质是Windows文本模式下的换行符自动转换与csv.writer的换行处理叠加导致的:

  • asksaveasfile默认以文本模式(w)打开文件,Windows系统会自动把写入的\n转换成\r\n
  • 而csv.writer本身在写入每行时,已经会添加\r\n作为换行
  • 两者叠加后,每行末尾变成\r\r\n,用软件打开时就会显示出多余的空行

解决办法

调用asksaveasfile时,添加newline=''参数,禁用系统自动的换行符转换,让csv.writer自行处理换行逻辑:

修改后的代码示例

import csv
from tkinter import filedialog  # 假设你用的是tkinter的asksaveasfile

# 调用asksaveasfile时指定newline=''
save_file = filedialog.asksaveasfile(
    defaultextension=".csv",
    filetypes=[("CSV文件", "*.csv")],
    newline=''  # 关键参数
)

if save_file:
    writer = csv.writer(save_file)
    # 写入表头(如果有需要)
    writer.writerow(["任务ID", "截止日期", "状态"])
    # 写入查询结果result
    writer.writerows(result)
    save_file.close()

原理说明

根据Python官方csv模块文档的要求:在写入CSV文件时,必须以newline=''打开文件,这样可以确保csv.writer生成的换行符不会被系统文本模式修改,彻底避免多余空行的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 04:55:45