美文网首页
Python笔记-批量合并excel文件

Python笔记-批量合并excel文件

作者: 我开心0536 | 来源:发表于2020-02-17 22:21 被阅读0次

    【功能】
    批量合并excel文件( python 3.7版本下调试成功)
    【特点】
    1、自动搜索指定文件夹下的所有xls和xlsx文件
    2、如果有子文件夹,也会自动搜索多层文件夹
    3、如果文件夹下有其它后缀的文件,自动跳过

    360截图20200217222501092.jpg

    【以下为代码,右上角有复制按钮,可一键复制】

    # 将指定目录下的所有excel文件,合并到一个csv文件中  2020.2.17我开心
    import os
    import pandas as pd  # pandas依赖xrld,必须同时安装xlrd库
    import time
    
    t1 = time.time()  # 获取当时时间,结果为1581928872.691441
    l = []            # 用来临时存储表格内容
    n = 0             # 用来统计文件个数
    
    for filelist in os.walk('c:/temp'):  # 显示本目录下所有文件 ('c:/temp', [], ['文件1.xls', '文件2.xls', '文件3.xls'])
        #print(file)
        for filename in filelist[2]:   # filelist[2] 表示提取文件名部分到filename,每行一个文件名
            #print(filename)
            path_filename = filelist[0] + '/' + filename    # 将文件夹与文件名合并,path_filename内容为:c:/temp/文件1.xls
            path_filename = path_filename.replace("\\","/")  # 如果文件夹有子目录,将路径中的\替换为/
            #print(path_filename)
            if os.path.splitext(path_filename)[1] == '.xls' or os.path.splitext(path_filename)[1] == '.xlsx':
                data = pd.read_excel(path_filename,header=0,encoding='utf-8')
                #print(data)
                n=n+1
                l.append(data) # 将本表内容添加
                print('第',n,'个表格已提取,文件名:',path_filename,)
            else:
                print('本文件不是xls或xlsx文件,自动跳过! 文件名:',path_filename)
    data_result = pd.concat(l)
    data_result.to_csv('c:/最终汇总文件.csv',index=0,encoding='utf_8_sig')
    t = round( time.time()-t1 ,2)   # 计算耗时,用当前时间 - 开始的时间,并取2位小数
    print('用时',t,'秒,表格已合并完成!  \n【我开心 Ver:20200217.01】')
    

    相关文章

      网友评论

          本文标题:Python笔记-批量合并excel文件

          本文链接:https://www.haomeiwen.com/subject/frtwfhtx.html