我在Python中并且有一个我要写入csv文件的数字列表。比如,我的列表是:[1 2 3 4 5 6 7 8 9],并且在我导出此数据的csv文件中,我想每三个数字开始一个新行。这意味着,当我在Excel中打开输出文件时,我希望它看起来像 this.
所以,我基本上想要一个9元素列表并将其写入3x3矩阵。我确定我必须最终使用writerows命令,但是找不到类似于我的问题的文档,所以我不确定该如何处理它。
非常感谢任何帮助,如果在某个时候已经提出这个问题,我很抱歉。
答案 0 :(得分:6)
使用理解将列表切割为2D列表,并将其传递给csv.writerows
。
自包含的例子:
import csv
lst = list(range(1,10))
with open("out.csv","w",newline="") as f:
cw = csv.writer(f)
cw.writerows(lst[i:i+3] for i in range(0,len(lst),3))
创建一个像这样的csv文件:
1,2,3
4,5,6
7,8,9
答案 1 :(得分:3)
您可以使用reshape
:
import numpy
my_array=numpy.reshape(my_list, (3,3))
顺便说一句,它应该是[1, 2, 3, 4, 5, 6, 7, 8, 9]
,而不是[1 2 3 4 5 6 7 8 9]