Python – 如何合并文件夹中的所有Excel文件
在实际工作中,通常会遇到需要合并某个文件夹中的所有Excel文件的需求。使用Python可以快速自动化实现这个过程。本文将介绍如何使用Python来合并文件夹中的所有Excel文件。
阅读更多:Python 教程
导入模块
需要使用以下模块:
- os:用于处理文件路径等操作
- pandas:用于读取和合并Excel文件
Python中的os和pandas模块通常是预装的,因此我们只需要安装pandas模块即可。可以通过以下命令来安装:
pip install pandas
获取文件夹中的所有Excel文件
首先,我们需要获取文件夹中的所有Excel文件。可以使用os模块中的listdir函数获取文件夹中的所有文件,然后使用文件名的后缀名来筛选Excel文件。
import os
folder_path = '/path/to/folder' # 文件夹路径
files = os.listdir(folder_path) # 获取文件夹中的所有文件
excel_files = [f for f in files if f.endswith('.xlsx') or f.endswith('.xls')] # 筛选Excel文件
在上面的代码中,我们使用变量folder_path来存储文件夹的路径。然后使用os.listdir函数获取文件夹中的所有文件,最后使用列表推导式将Excel文件保存在变量excel_files中。
合并Excel文件
接下来,我们需要将所有Excel文件合并。可以使用pandas模块中的read_excel函数将Excel文件读入DataFrame对象,并使用concat函数将DataFrame对象合并。
import pandas as pd
excels = [pd.read_excel(os.path.join(folder_path, f)) for f in excel_files] # 读取所有Excel文件
combined = pd.concat(excels, ignore_index=True) # 合并所有Excel文件为一个DataFrame对象
在上面的代码中,我们首先使用列表推导式和pd.read_excel函数读取所有Excel文件,并保存在列表excels中。然后使用pd.concat函数将所有excels列表中的DataFrame合并为一个DataFrame对象。ignore_index参数用于重置行索引。
保存合并后的Excel文件
最后,我们可以使用to_excel函数将合并后的DataFrame保存为一个新的Excel文件或者覆盖原有的Excel文件。
combined.to_excel('/path/to/combined.xlsx', index=False) # 将合并后的DataFrame保存为一个新的Excel文件
在上面的代码中,我们使用to_excel函数将合并后的DataFrame对象保存为一个Excel文件。参数index=False用于避免在文件中添加行索引。
完整代码
将上面的代码合并起来,我们得到如下完整的Python脚本:
import os
import pandas as pd
folder_path = '/path/to/folder' # 文件夹路径
files = os.listdir(folder_path) # 获取文件夹中的所有文件
excel_files = [f for f in files if f.endswith('.xlsx') or f.endswith('.xls')] # 筛选Excel文件
excels = [pd.read_excel(os.path.join(folder_path, f)) for f in excel_files] # 读取所有Excel文件
combined = pd.concat(excels, ignore_index=True) # 合并所有Excel文件为一个DataFrame对象
combined.to_excel('/path/to/combined.xlsx', index=False) # 将合并后的DataFrame保存为一个新的Excel文件
结论
使用Python可以快速自动化合并文件夹中的所有Excel文件操作。以上介绍的方法可以轻松实现这个过程。在实际工作中,我们可以将这个过程封装为一个函数,以便在需要时进行调用。