Python写入CSV文件每次执行生成空行,如何解决?
解决Python写入CSV时出现空行的问题
你的代码执行后CSV出现空行,主要有两个原因:
- 换行符重复转换:在Windows系统中,
open函数默认的文本模式会把\n自动转换成\r\n,而csv.writer本身也会输出\r\n作为换行符,双重转换后就会出现额外空行。 - 原文件空行被保留:如果原CSV文件本身存在空行,
csv.reader会把空行读取为一个空列表[],写入时这个空列表会被转换成空行。
修改后的代码
import csv # 原代码遗漏了必要的csv模块导入,需补上 data = [] with open("employee_data.csv", "r") as employee_data: reader = csv.reader(employee_data) user_id = "336456" for row in reader: # 过滤原文件中的空行 if not row: continue if row[0] == user_id: leave_type = "n" row.append(leave_type) data.append(row) # 写入时指定newline='',避免换行符重复转换 with open("employee_data.csv", "w", newline='') as employee_data: writer = csv.writer(employee_data) writer.writerows(data)
关键修改点
- 补充
csv模块导入:原代码未导入该模块,运行会直接报错。 - 过滤空行:读取时跳过原文件的空行,避免写入时生成无效空行。
- 添加
newline=''参数:让csv.writer自行处理换行逻辑,解决Windows系统下的双重换行问题。
内容的提问来源于stack exchange,提问作者amsi_25
相关产品推荐
相关产品推荐

