Python实现将多个列表分别写入CSV文件的不同行
解决多个列表逐行写入CSV的问题
你遇到的核心问题是写入内容时没有添加换行符,再加上代码里还有个变量名笔误,才导致多个列表的内容全都挤在同一行啦。我来帮你一步步修正:
基础修复版(基于你现有代码调整)
你循环里定义的列表是final,但写入时误写成了kk,这会直接报错;另外每次写完一组数据后,必须加上换行符'\n',这样下一个列表才会自动跳到新行:
for i in range(10): final = [i*1, i*2, i*3] with open('0514test.csv', 'a') as file: # 修正变量名 + 添加换行符 file.write(','.join(str(item) for item in final) + '\n')
更高效的写法(减少重复IO操作)
每次循环都打开、关闭文件有点浪费资源,你可以把文件打开操作放在循环外面,这样只需要IO一次:
# 用'w'会覆盖原有内容,用'a'则是追加到文件末尾,根据你的需求选择 with open('0514test.csv', 'w') as file: for i in range(10): final = [i*1, i*2, i*3] file.write(','.join(str(item) for item in final) + '\n')
更规范的方案(用Python内置csv模块)
如果你的数据里可能出现逗号、引号这类特殊字符,手动用join拼接很容易出问题。推荐用Python自带的csv模块,它会自动处理这些边界情况,写法也更简洁:
import csv with open('0514test.csv', 'w', newline='') as file: writer = csv.writer(file) for i in range(10): final = [i*1, i*2, i*3] writer.writerow(final) # 直接写入一行,自动处理分隔符和换行
这样不管你的列表里是什么内容,都能稳稳写入CSV的每一行啦。
内容的提问来源于stack exchange,提问作者Lara19
相关产品推荐
相关产品推荐

