我需要将多个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支持实用程序/框架中执行此操作。
答案 0 :(得分:2)
将多个csv文件中的记录合并为一个很简单。如果多个csv文件位于同一目录中,则可以从cmd执行以下命令。
D:\Files>copy *.csv Merged.csv
这将在同一目录中创建一个Merged.csv文件,并将包含来自所有csv的记录。
答案 1 :(得分: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)