我有两个列表,我试图以特定格式写入csv文件。
让我们调用这些列表colHead
和rowVals
。
列表colHead
包含需要写入csv文件的列标题的名称。我使用以下代码实现了这一点:
with open(filename, 'wb') as f:
writer = csv.writer(f)
writer.writerow(colHead)
现在,rowVals
是一个包含250个值的列表。这250个值以有序的格式排列。我希望在每个rowVals
下编写colHead
的每25个值,以获得结果。
我正在使用的代码(它没有给我想要的结果)是:
with open(filename, 'wb') as f:
writer = csv.writer(f)
writer.writerow(colHead)
for i in range(0,25):
writer.writerow(rowVal)
i+=25
最后我想把这种格式写成csv格式。
colHead1,colHead2,colHead3......colHead10
rowVal1, rowVal26, . , .
rowval2, rowVal27, . , .
. , . , . , .
. , . , . , .
rowVal25, . , . , rowVal250
请告诉我出错的地方。
答案 0 :(得分:2)
只需使用生成器理解来提取writerows
,就像这样25步,将你的250项目列表切成25次:
writer.writerows(rowVal[i::25] for i in range(25))
我明白了:
rowval1,rowval26,rowval51,rowval76,rowval101,rowval126,rowval151,rowval176,rowval201,rowval226
rowval2,rowval27,rowval52,rowval77,rowval102,rowval127,rowval152,rowval177,rowval202,rowval227
rowval3,rowval28,rowval53,rowval78,rowval103,rowval128,rowval153,rowval178,rowval203,rowval228
...
rowval24,rowval49,rowval74,rowval99,rowval124,rowval149,rowval174,rowval199,rowval224,rowval249
rowval25,rowval50,rowval75,rowval100,rowval125,rowval150,rowval175,rowval200,rowval225,rowval250