【发布时间】:2015-07-31 20:42:05
【问题描述】:
我是 Python 的初学者。我有多个 CSV 文件(超过 10 个),并且它们都有相同数量的列。我想将它们全部合并到一个 CSV 文件中,我不会在其中重复标题。
所以基本上我只需要包含所有标题的第一行,然后我需要合并所有 CSV 文件中的所有行。我该怎么做?
这是我目前尝试过的。
import glob
import csv
with open('output.csv','wb') as fout:
wout = csv.writer(fout,delimiter=',')
interesting_files = glob.glob("*.csv")
for filename in interesting_files:
print 'Processing',filename
# Open and process file
h = True
with open(filename,'rb') as fin:
fin.next()#skip header
for line in csv.reader(fin,delimiter=','):
wout.writerow(line)
【问题讨论】:
-
我已经更新了到目前为止我尝试过的内容。 @MarcB
-
那么问题出在哪里?看起来它应该可以工作,除了不保留第一个文件的标题行。
-
csv.reader(fin,delimiter=',') 中 for 行的缩进:看起来不正确。
-
代替最后一个
for循环,您可以使用 line-linerwout.writerows(csv.reader(fin,delimiter=','))复制每个fin文件的其余部分。