组合CSV文件columnwis

2024-06-24 13:00:31 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我在Python中有两个名为AB的CSV文件。在

Ahead看起来像:

 headerNameA1,headerNameA2
 1.12412424,1
 1,1
 1,1
 1,1

Bhead看起来像:

^{pr2}$

我的目标是将两者合并到一个文件C。不过,我的目标也是不要将它们加载到RAM中,因为它们是大文件。得到的C将是:

 headerNameA1,headerNameA2,headerNameB1,headerNameB2
 1.12412424,1,1,1
 1,1,1,1
 1,1,1,1
 1,1,1,1

如果解决方案可以合并多个CSV文件,则可以获得额外的积分。但是,如果在解中这是不可能的,因为我总是可以将任何其他的与C结合来生成D,然后再将其他的与{}结合,得到{},无限大。在

该解决方案可以是基于Python,也可以是terminalPython中的os.system。在


Tags: 文件csv目标os解决方案systemheadterminal
1条回答
网友
1楼 · 发布于 2024-06-24 13:00:31

您可以一次使用两个文件中的一行,将它们连接在一起并写入输出文件。csv模块使事情变得更干净。在

import csv
with open('A','rb') as f1, open('B','rb') as f2, open('out.csv','wb') as w:
    writer = csv.writer(w)
    r1,r2 = csv.reader(f1),csv.reader(f2)
    while True:
        try:
            writer.writerow(next(r1)+next(r2))
        except StopIteration:
            break

正如@RogerPate所指出的,你可以用itertools.izip使这个更光滑(如果你在python3中,只要zip

^{pr2}$

相关问题 更多 >