【功能】
批量合并excel文件( python 3.7版本下调试成功)
【特点】
1、自动搜索指定文件夹下的所有xls和xlsx文件
2、如果有子文件夹,也会自动搜索多层文件夹
3、如果文件夹下有其它后缀的文件,自动跳过
【以下为代码,右上角有复制按钮,可一键复制】
# 将指定目录下的所有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】')
网友评论