如何将多个CSV文件合并成一个CSV文件

3
我有一个需求,需要将多个CSV文件合并成一个单独的CSV文件。 我尝试了谷歌搜索关于CSVWriter或SuperCSV的一些信息,但我无法理解。
所有CSV文件将包含相同的列/头。
更好地理解: 我从数据库中获取10,000条记录,并创建了10个csv文件(MyCSV_1-1000.csv,MyCSV_1001-2000.csv,MyCSV_2001-3000等)。 每个CSV文件包含1,000条记录。现在我需要将所有这些CSV文件合并到第一个CSV中,以便MyCSV_1-1000.csv包含所有记录,即1-10,000(在合并之前它仅包含1-1,000条记录)。
有人能帮我吗?
我想使用Java或任何其他支持Java的工具/框架来完成这个任务。

CSV文件只是普通的文件,使用正常的Java I/O库即可合并它们。 - spinlok
请看这个链接:https://dev59.com/dE_Sa4cB1Zd3GeqP-j_N - user3470953
2个回答

4
合并多个csv文件的记录非常简单。如果多个csv文件在同一个目录中,您可以从cmd执行以下命令。
D:\Files>copy *.csv Merged.csv

这将在同一目录下创建一个Merged.csv文件,并且将来自所有csv的记录合并到其中。

更多关于此解决方案的信息请参见 https://www.live2tech.com/merge-multiple-csv-files-combine-one-large-csv-file/ - Alwin Jose

0

根据手头的目标/问题,可以利用编程语言来解决。

假设您需要在合并之前清理数据集,Python有非常好的库,我建议您使用pandas

如果数据集具有相同的结构,请创建一个for循环来执行以下操作:

• 删除不必要的行

df.drop(df.index[[0,1,2]]) #Removing the first 3 rows

• 转置数据框

transpose_dataframe = df.transpose()

• 等等。

清理过程完成后,可以使用Python进行合并。在我的情况下,Maverick的答案生成了一些有趣的字符,并且没有正确地合并,因此我使用了以下方法:

import os
import csv, glob


Dir = r"C:\Users\name\Desktop\DataDirectory"
Avg_Dir = r"C:\Users\name\Desktop\Output"

csv_file_list = glob.glob(os.path.join(Dir, '*.csv'))

print (csv_file_list)

with open(os.path.join(Avg_Dir, 'Output.csv'), 'w', newline='') as f:

    wf = csv.writer(f, lineterminator='\n')
    
    for files in csv_file_list:
        with open(files, 'r') as r:
            next(r) # SKIP HEADERS
            rr = csv.reader(r)
            for row in rr:
                wf.writerow(row)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接