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

Python写入CSV出现空行导致读取报错,如何解决?

解决Python CSV写入时行间空行问题

这问题根源是Windows系统下,csv模块和文件系统的换行处理冲突导致的。直接改写入代码就能解决,不用在读取环节绕弯子。

错误写法示例

你之前的代码大概率是这样的:

import csv

data = [["问题1", "选项A", "选项B", "正确答案"], ["问题2", "选项X", "选项Y", "正确答案"]]

# 错误:未指定newline参数
with open('quiz.csv', 'w', encoding='utf-8') as f:
    writer = csv.writer(f)
    writer.writerows(data)

这种写法在Windows环境下,会让每行数据后多生成一个空行,读取时就会读到空列表,直接触发IndexError: list index out of range。

正确写法

打开文件时添加newline=''参数,把换行逻辑交给csv模块自己处理:

import csv

data = [["问题1", "选项A", "选项B", "正确答案"], ["问题2", "选项X", "选项Y", "正确答案"]]

# 正确:指定newline=''
with open('quiz.csv', 'w', encoding='utf-8', newline='') as f:
    writer = csv.writer(f)
    writer.writerows(data)

原理说明

csv模块遵循RFC 4180标准处理换行,当你打开文件时指定newline='',Python就不会自动转换换行符,完全由csv模块来控制换行输出,这样就不会出现多余的空行了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 02:14:54