python 逐行合并文件夹中的多个/所有文件

arknldoa  于 2023-03-28  发布在  Python
关注(0)|答案(1)|浏览(113)

我需要合并我所有的csv文件在一个添加他们喜欢列
我尝试解决方案描述here,但它不工作.它把行从一个csv到一个新的csv和其他csv作为新的行添加一行.我有:具有以下结构的多个文件:
1.锉

a,b
c,d

1.文件(相同的数据结构

e,f
g,h

我的期望:

a,b,e,f,...
b,c,g,h,...

我通过尝试代码得到的:

"a,b c,d"
"e,f g,h"
db2dz4w8

db2dz4w81#

使用zip获取所有文件中的所有并发行,并使用列表加法将并发行连接在一起

import csv
import glob
import itertools
import os

dirpath = "/path/to/directory/with/csv/files"
csvPaths = glob.glob(os.path.join(dirpath, "*.csv"))
csvs = [csv.reader(open(fpath) for fpath in csvPaths]
rows = itertools.zip_longest(*csvs, fillvalue=[])

with open(os.path.join(dirpath, 'output.csv'), 'w') as outfile:
    outfile = csv.writer(outfile)
    for row in rows:
        outfile.writerow(sum(row))

相关问题