首页 > 解决方案 > 使用python脚本将两个csv文件合并为一个csv文件

问题描述

我有两个 CSV 文件。file1 有一个只有一条记录的标题,而 file2 有一个标题和多条记录。

文件1:

dept_id     dept_role   dept_name   dept_date        dept_ service
10           man        develop      10/5/2019 13:24    user
file2:
id      name    starttime       end time        user manufacturing
5487    abc     10/5/2019 14:24 10/5/2019 17:24 loc  king           
5896    egdt    10/5/2019 14:24 10/5/2019 17:24 rgf  king           
6305    abc     10/5/2019 14:24 10/5/2019 17:24 srf  king      
6714    egdt    10/5/2019 14:24 10/5/2019 17:24 sd   king   
7123    abc     10/5/2019 14:24 10/5/2019 17:24 loc  king   
7532    egdt    10/5/2019 14:24 10/5/2019 17:24 rgf  king   
7941    abc     10/5/2019 14:24 10/5/2019 17:24 srf  king   

预期输出如下:

dept_id     dept_role   dept_name   dept_date        dept_ service  id      name    starttime       end time        user manufacturing
10           man        develop      10/5/2019 13:24    user        5487    abc     10/5/2019 14:24 10/5/2019 17:24 loc  king           
10           man        develop      10/5/2019 13:24    user        5896    egdt    10/5/2019 14:24 10/5/2019 17:24 rgf  king           
10           man        develop      10/5/2019 13:24    user        6305    abc     10/5/2019 14:24 10/5/2019 17:24 srf  king      
10           man        develop      10/5/2019 13:24    user        6714    egdt    10/5/2019 14:24 10/5/2019 17:24 sd   king   
10           man        develop      10/5/2019 13:24    user        7123    abc     10/5/2019 14:24 10/5/2019 17:24 loc  king   
10           man        develop      10/5/2019 13:24    user        7532    egdt    10/5/2019 14:24 10/5/2019 17:24 rgf  king   
10           man        develop      10/5/2019 13:24    user        7941    abc     10/5/2019 14:24 10/5/2019 17:24 srf  king

当我运行下面的代码时,我的列填充不正确 - 文件 1 和 2 中的最后一列被合并。

标签: python-3.xcsv

解决方案


在这里我添加了我的脚本:

import os, sys, csv from itertools 
import product 
def main(): 
    with open('file1.csv', 'r') as f1, open('file2.csv', 'r') as f2: 
        reader1 = csv.reader(f1, dialect=csv.excel_tab) 
        reader2 = csv.reader(f2, dialect=csv.excel_tab) 
        header1, header2 = next(reader1),next(reader2) 
    with open('filen.csv', 'w',newline='\n') as out: 
       writer = csv.writer(out, dialect=csv.excel_tab) 
       writer.writerow(header1+ header2) 
       writer.writerows(row1 + row2 
    for row1, row2 in product(reader1,reader2))
main() 
print('file merge completed')

推荐阅读