将不同csv文件中的列提取到单个文件中

时间:2014-03-14 05:15:34

标签: python file csv

有人可以帮我解决这个问题吗?我不知道如何解决这个问题。我有10个不同的csv文件。每个文件包含不同数量的列。每列包含标题和数据。我想从不同的csv文件中复制选择性列,并按照特定顺序将它们放在新文件中。例如,来自file1的列1,5,6,来自文件2的列1,2,3,来自file3的列8,以创建包含相应格式的7列的文件:

column1(file1)  column1(file2) column2(file2) column3(file2) column5(file1) column8(file3) column6(file1)

我该如何编码?

1 个答案:

答案 0 :(得分:1)

这是未经测试的,但应该让你走上正确的道路:

import csv
import itertools

FILES = ['file1.csv', 'file2.csv', 'file3.csv', ...]

with open('output', 'wb') as output:
    input_files = [ csv.reader(open(fname, 'rb')) for fname in FILES ]
    writer = csv.writer(output)
    for row in itertools.izip(*input_files):
        writer.writerow([
            # format is row[file#-1][column#-1]
            row[0][0],
            row[1][0],
            row[1][1],
            row[1][2],
            row[0][4],
            row[2][7],
            row[0][5],
        ])
相关问题