Python向CSV文件追加新行时未换行的问题求助
解决CSV追加内容不换行的问题
这个问题我之前也踩过坑!原因很直白——你原CSV文件的最后一行mel,27,ireland末尾没有换行符,当你用a模式追加内容时,新的条目就直接拼接在这行后面了。
为什么会这样?
默认情况下csv.writer会给每行添加换行,但它是从当前文件指针的位置开始写入的。如果原文件最后一行没以换行符结尾,指针就停在这行的最后一个字符后面,新内容自然就挤到同一行里了。
两种解决方案
1. 临时手动处理(适合少量文件)
直接打开你的data.csv,在mel,27,ireland这行末尾敲个回车保存,再运行代码就能正常追加到新行了。
2. 代码层面彻底解决(推荐)
使用csv模块官方推荐的newline=''参数打开文件,它会让模块自动处理跨平台的换行问题,同时确保新行始终写到下一行,不管原文件末尾有没有换行符。修改后的代码如下:
import csv info=['kirsty','32','germany'] # 关键是添加newline=''参数 with open('data.csv','a', newline='') as file: writer=csv.writer(file) writer.writerow(info) # 注意:with语句会自动关闭文件,不需要手动调用file.close()
另外提个小细节:你原来代码里的file.close()是多余的,with上下文管理器会在代码块结束后自动关闭文件,手动调用反而可能导致意外问题哦。
内容的提问来源于stack exchange,提问作者West
相关产品推荐
相关产品推荐

