下面的测试是针对一个伪造的数据文件,它对我来说很好,但是ymmv。。。
有关工作的描述,请参阅内联注释import csv
# we open the data file and put its content in data, that is a list of lists
with open('data.csv') as csvfile:
data = [row for row in csv.reader(csvfile)]
# the following idiom transpose a list of lists
transpose = zip(*data)
# I use Python 3, hence zip is a generator and I have to throw away using next()
# the first element, i.e., the column of the row numbers
next(transpose)
# I enumerate transpose, obtaininig the data column by column
for nc, column in enumerate(transpose):
# I prepare for writing to a csv file
with open('trans%d.csv'%nc, 'w') as outfile:
writer = csv.writer(outfile)
# here, we have an idiom, sort of..., please see
# http://stupidpythonideas.blogspot.it/2013/08/how-grouper-works.html
# for the reason why what we enumerate are the rows of your output file
for nr, row in enumerate(zip(*[iter(column)]*365)):
writer.writerow([nr+1,*row])