如何将列表元素写入CSV独立字段?二维列表CSV写入排障
解决二维列表写入CSV时子列表被放入单列的问题
看起来你的代码逻辑本身是对的——csv.writer的writerow()方法就是把传入的可迭代对象(比如你的子列表)的每个元素拆分成单独列的。之所以出现每个子列表挤在同一列的情况,大概率是这两个常见问题之一:
1. 忘记导入csv模块
如果你的代码里没有开头的import csv,Python会直接报错;要是你漏写了这段却强行运行,可能会触发意外行为(比如误将列表转成字符串写入)。
修正:在代码最顶部添加导入语句:
import csv
2. Windows系统下未设置newline=''参数
在Windows环境中用open()写CSV时,如果不指定newline='',会导致每行末尾多出额外的换行符,CSV阅读器会因此把整行内容识别成单个列,看起来就像每个子列表都挤在一列里。
修正后的完整代码:
import csv example_list = [[1,2,3], [4,5,6], [7,8,9]] # 关键:添加newline=''参数避免换行符问题 with open('example.csv', 'w', newline='') as f: writer = csv.writer(f) for line in example_list: writer.writerow(line)
另外,你还可以用更简洁的writerows()方法一次性写入所有行,效果完全一致:
import csv example_list = [[1,2,3], [4,5,6], [7,8,9]] with open('example.csv', 'w', newline='') as f: writer = csv.writer(f) writer.writerows(example_list) # 直接传入整个二维列表即可
修改后重新运行代码,打开生成的example.csv就能看到:每个子列表的元素对应单独列,每个子列表对应单独一行。
内容的提问来源于stack exchange,提问作者Pa Met
相关产品推荐
相关产品推荐

