将列添加到CSV文件并在该列中插入文件名

时间:2017-07-20 10:09:26

标签: python csv

我有一堆CSV文件,我将合并到一个名为“Combined”的CSV文件中。对于每个CSV文件,一旦将数据附加到“Combined”文件,我想在“Combined”中的第1列之前插入一个新列,并插入在该迭代中从中复制数据的CSV文件的名称。有没有办法在Python中这样做?

1 个答案:

答案 0 :(得分:1)

这可以如下完成。首先打开CSV文件以进行输出。现在使用Python的glob库列出文件夹中的所有CSV文件。对于CSV文件中的每一行,将文件名作为第一列条目添加前缀,然后将其写入output.csv

import glob
import csv

with open('output.csv', 'w', newline='') as f_output:
    csv_output = csv.writer(f_output)

    for filename in glob.glob('*.csv'):
        with open(filename, newline='') as f_input:
            csv_input = csv.reader(f_input)

            for row in csv_input:
                row.insert(0, filename)
                csv_output.writerow(row)

例如,如果你有这两个CSV文件:

num.csv

1,2,3,4,5
1,2,3,4,5
1,2,3,4,5

letter.csv

a,b,c,d,e,f
a,b,c,d,e,f
a,b,c,d,e,f
a,b,c,d,e,f

它会创建以下output.csv文件:

letter.csv,a,b,c,d,e,f
letter.csv,a,b,c,d,e,f
letter.csv,a,b,c,d,e,f
letter.csv,a,b,c,d,e,f
num.csv,1,2,3,4,5
num.csv,1,2,3,4,5
num.csv,1,2,3,4,5

这假设您使用的是Python 3.x。