python对多个csv文件进行合并(表头需一致)

之前写过python对【多个Excel文件】中的【单个sheet】进行合并,参考:点我

之前也写过python对【多个Excel文件】中的【多个sheet】进行合并,参考:点我

今天再写一个python对多个csv格式的文件进行合并的小工具

但是大家切记,数据量别太大,如果数据量太大,即合并之后的数据量不要超过csv最大的行数,否则的话最后的保存,就会变得很慢,这时候就会需要用到数据库插入,放心数据库插入我也已近写好了,参考:点我

python对多个csv文件进行合并(表头需一致)_第1张图片

首先csv里面没有多个sheet,它只能有一个sheet,而且读取的速度也是比excel要快,所以还是很方便的。

目录结构

python对多个csv文件进行合并(表头需一致)_第2张图片

文件夹:【待合并数据源】:把你的csv文件放进去,可多个

结果会自动生成在当前文件夹

上代码

import os
import openpyxl
import pandas
import time


df = pandas.read_csv("./合并数据源/"+os.listdir("./合并数据源/")[0],dtype=str,keep_default_na="",encoding='gbk').head(0)# 将表头读取到
head = list(df)
# print(list(df))
wb2 = openpyxl.Workbook() # 创建新的EXCEL
ws = wb2.active
ws.append(head) # 写入表头

for f in os.listdir("./合并数据源/"):
    print(f)
    df = pandas.read_csv("./合并数据源/"+f,dtype=str,keep_default_na="",skiprows=1,encoding='gbk')# 读取内容,跳过表头
    for d in df.values.tolist():
        # print(d)
        ws.append(d)
wb2.save("./结果.xlsx")
print("结果生成成功!,就在当前文件夹内!")
time.sleep(2)

最后的保存代码:wb2.save(“./结果.xlsx”)

您也可以写成:wb2.save(“./结果.csv”)

方法2(推荐)

利用python的csv读取,这样读取的速度和效率是最快的

代码

1、填写合并的文件:dir_list = os.listdir(“这里是合并csv文件的文件夹”)

2、 写个表头,f_w.writerow([“表头”,[“表头”,[“表头”,[“表头”,[“表头”,])

def merge_csv():

    dir_list = os.listdir("这里是合并csv文件的文件夹")
    # 打开 CSV 文件
    with open("合并结果.csv", 'w', newline='', encoding='utf-8') as f_w:
        f_w = csv.writer(f_w)
        f_w.writerow(["表头",["表头",["表头",["表头",["表头",])
        for f in dir_list:
            with open(f, newline='', encoding='utf-8') as csvfile:
                # 读取 CSV 文件内容
                reader = csv.reader(csvfile, delimiter=',', quotechar='"')
                # 遍历 CSV 文件中的每一行数据
                count = 0
                for row in reader:
                    count+=1
                    if count==1:
                        continue
                    f_w.writerow(row)

                    # 处理每一行数据
                    # print(row)
merge_csv()

您看到这,你会不会想把代码打包成EXE可执行程序,让一个不会Python的人也可以使用呢!那么打包请参考,我觉得这是最方便的打包教程:点我学会python打包exe

希望对大家有帮助,如有错误,欢迎指正

致力于办公自动化的小小程序员一枚

致力于写出清楚的博客

都看到这了,关注+点赞+收藏=不迷路!!

你可能感兴趣的:(Python自动化办公,python,pandas,开发语言)