python批量快速合并excel文件(csv和xls)

需要用到两个.py 分别是excel_NAME.py 和jindong3.py

导入excel_NAME.py ,其 作用为批量读取目录文件的csv或者xls的文件名
导入excel_NAME.py:

import os
import re

import openpyxl
import pandas
import test_wy

import xlrd


def get_one_type_file_list(InputFilePath, FileSuffix):
    # input: 文件夹路径(当前路径直接写路径名,
    # 自动去除路径名 最前面 和 最后面 多个连续的/ or \
    # FileSuffix:文件后缀,例如"csv","xlsx"
    # 中英文路径和文件名都可以使用
    # return: 在路径InputFilePath下,符合FileSuffix后缀的所有文件的列表,
    # return:带输入路径的文件名,纯文件名
    TempPath = InputFilePath
    while ((TempPath[0] == '/') or (TempPath[0] == '\\')):
        InputFilePath = TempPath[1:]
        TempPath = InputFilePath
    while ((TempPath[-1] == '/') or (TempPath[-1] == '\\')):
        InputFilePath = TempPath[:-2]
        TempPath = InputFilePath
    FileList = []
    PathList = []
    FileNames = os.listdir(InputFilePath)
    FindStr = r".*?\." + FileSuffix + "$"  # 文件名末尾匹配 .+文件名后缀
    if (len(FileNames) > 0):
        for fn in FileNames:
            result = re.match(FindStr, fn)
            if result != None:
                strTemp = InputFilePath + "\\" + fn
                PathList.append((InputFilePath + "\\" + fn))
                FileList.append(fn)
    if (len(FileList) > 0):
        print("get_one_type_file_list(): has ", len(FileList), ' ', FileSuffix, " file: \n")
        for i in range(len(PathList)):
            print(PathList[i])
#            xls_data = pandas.read_excel(PathList[i], engine='openpyxl')

            # 请参考读取excel文件的代码
            #  raw_data.insert(0, sheet_data)
            #  print(each_sheet.name, ":Data has been done.")
        print("\n\n")
    return (PathList, FileList)


'''
---------------------------------测试---------------------------------
'''

导入jingdong3.py

import pandas as pd
import excel_NAME

'''
---------------------------------2021-05-06  整理模板---------------------------------
'''
if __name__ == "__main__":
    strInputDir = r"C:\\Users\\lenovo\\Desktop\\jindongcesi\\"  # 要整理的文件夹
    strFileSuffix = "csv"  # 更改excel的后缀
    # strFileSuffix = "xls"  # 如需合并xls或xlsx更改excel的后缀
    lstFilePath, lstFileName = excel_NAME.get_one_type_file_list(strInputDir, strFileSuffix)

df1 = pd.DataFrame(
    columns=['下单时间', '计划名称', '品类名', 'SKUID', '播放类型', '推广设备', '口径', '订单类型', '当天/1天/3天/7天/15天', '展现量', '点击量', '点击率',
             '总费用', '千次展现成本', '平均点击成本', '直接订单行', '直接订单金额', '直接加购数', '间接订单行', '间接订单金额', '间接加购数', '总订单行', '总订单金额', '总加购数',
             '转化率(%)', 'ROI'])              # 这个datafram自己根据自己的表头填写,需要和合并的excel表头需要格式一样
for path in lstFilePath:
    print(path)
    df = pd.read_csv(path)  # 可以使用dtype参数 每列数据的数据类型。例如 {‘a’: np.float64, ‘b’: np.int32}
    # df = pd.read_xls(path) 更改后缀
    print(df)
    df1 = df1.append(df)  # 累加 dataframe
str11 = "C:\\Users\\lenovo\\Desktop\\test_dd\\" + 'jingdong'+'.xlsx' #为写入的路径文件
print(str11)

df1.to_excel(str11, index=False)  # 写入excel  

最后运行jingdong3.py得到结果在str11中

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值