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