Если все содержимое файла помещается в память, вы можете использовать
import csv
from itertools import izip
a = izip(*csv.reader(open("input.csv", "rb")))
csv.writer(open("output.csv", "wb")).writerows(a)
Вы можете просто думать о zip()
и izip()
как о операциях транспонирования:
a = [(1, 2, 3),
(4, 5, 6),
(7, 8, 9)]
zip(*a)
# [(1, 4, 7),
# (2, 5, 8),
# (3, 6, 9)]
izip()
избегает немедленного копирования данных, но в основном делает то же самое.