我有一列数字,例如22、23、25、32、33、36。我想在csv文件中将其拆分为新列,以使第一列为22,第二列为23,依此类推。
import csv
from csv import writer
COLUMNS = 6
with open("Winning No - Sheet1.csv", "r") as input:
with open("output_file.csv", "w") as f:
output = writer(f, delimiter=";")
output.writerow(["Col {}".format(i+1) for i in xrange(COLUMNS)])
buffer = []
for row in input:
buffer.append(row)
if len(buffer) == COLUMNS:
output.writerow(row.split(','))
del buffer[:]
当我尝试此操作时,我得到6列,其中包含所有数字,因此第一列为22、23、25、32、33、36。第二列还有另外六个数字。如何解决这个问题?
我想要的输出:
COL1 COL2 COL3 COL4 COL5 COL6
22 23 25 32 33 36
我得到的输出实际上是:
COL1 COL2 COL3 COL4 COL5 COL6
22,23...,36 1,3,,...,36 3,4,...9 4,6,...7 8,9,...10 1,2,....7
答案 0 :(得分:0)
您可能想要执行以下操作:
output.writerow(row.split(','))
我从未使用过csv模块,但看起来它还提供了一个读者,您可以用来进行解析。
更新了更多内容:
with open("Winning No - Sheet1.csv", "r") as input:
with open("output_file.csv", "w") as f:
output = writer(f, delimiter=";")
output.writerow(["Col {}".format(i+1) for i in xrange(COLUMNS)])
for row in input:
output.writerow(row.split(','))