使用Python合并Excel文件

最近工作中,需要做很多合并excel文件的工作,文件量少的时候复制粘贴没问题,数据量大的时候就非常耗时,于是自己用python写了一段合并excel文件的小程序。大家可以直接拿来用。

工具

环境:Windows10
语言:python
模块:pandas、os

代码

import pandas as pd
import os

def get_file_path(path):
    '''获取文件夹内所有文件'''
    global file_list
    for root, dirs, files in os.walk(path):
        for index, name in enumerate(files):
            file_list.append(root + '\\' + name) #获取文件名,并将其转换成路径
    return file_list

def merge_sheet(file):
    '''合并多个sheet'''
    global result #这里不能省
    sheet_dict = {} #存放合并后的sheet
    dic = pd.read_excel(file, sheet_name= None) #sheetname参数为None时,返回的是一个'Orderdict',不再是一个Dataframe
    sheet_dict.update(dic)
    for key in sheet_dict.keys():
        result = result.append(sheet_dict[key])
    return result

if __name__ == '__main__':
    
    path = input('请输入需要合并的文件夹路径:') #文件夹路径
    file_list = [] #存放文件路径名的列表
    result = pd.DataFrame() #存放合并后的结果
    
    #执行获取文件名函数  
    get_file_path(path)
    print('================================')
    print('文件数:%i' %len(file_list))
    print('================================')
    print(file_list) #打印出所有文件名
    
    #遍历所有文件名,合并内容
    for file in file_list:
        merge_sheet(file)
    
    #打印合并后文件的维度
    l = result.shape
    print('================================')
    print('合并后文件:%i 条行记录, %i 个列字段' %(l[0], l[1]))
    print('================================')
    
    out_path = input('请输入合并文件保存路径及文件名:')  #文件保存路径
    result.to_excel(out_path, index=False, encoding='utf-8')
    
    print('完成!')

使用方法

现在,文件夹中有以下几个文件需要合并。
使用Python合并Excel文件_第1张图片
将以上代码保存为combine.py的文件,直接命令行终端执行程序即可。执行效果如下:
使用Python合并Excel文件_第2张图片
可以看到,在指定路径生成了合并后的文件。
使用Python合并Excel文件_第3张图片

注意事项

  • 需要将所有需要合并的文件放在同一个文件夹中。
  • 文件名可以不一样,但是文件结构一定要是相同的,否则合并出来的结果会有差错。
  • 需要手动输入文件夹地址,以及合并后的文件保存路径哦。

希望能帮到大家。

你可能感兴趣的:(python)