Python编辑CSV文件时自动添加空行问题求助
解决Python写入CSV时每行之间出现空行的问题
问题原因
这是Windows系统下的换行符兼容问题:Python的csv.writer默认用\r\n作为行终止符,而你用默认文本模式打开文件时,Windows会自动把输出的\n转换成\r\n,等于每行末尾多了一次换行处理,最终就出现了行与行之间的空行。
解决方案
有两种简单的修复方式,选其中一种就行:
方法1:打开文件时指定newline=''
修改你打开文件的代码,加上newline=''参数,让系统不要自动处理换行符,交给csv模块自己处理:
if changes == ("Yes"): # 新增newline=''参数 with open("mock_data.csv", "w+", newline='') as file: reader = csv.writer(file) for i in range(len(existing_clients)): reader.writerow(existing_clients[i])
方法2:初始化csv.writer时指定行终止符
给csv.writer加上lineterminator='\n'参数,强制使用单换行符:
if changes == ("Yes"): with open("mock_data.csv", "w+") as file: # 指定lineterminator为单换行符 reader = csv.writer(file, lineterminator='\n') for i in range(len(existing_clients)): reader.writerow(existing_clients[i])
小提示
更推荐用第一种方法,这是csv模块官方文档里的标准写法,跨平台兼容性更好,不管在Windows还是Linux/macOS上都能生成格式正确的CSV文件。
内容的提问来源于stack exchange,提问作者Nikki
相关产品推荐
相关产品推荐

