如何使用pandas批量合并文件夹内所有文件名不同的CSV文件
自动遍历目录合并所有CSV文件方案
不需要逐个声明文件路径,直接通过Python标准库遍历目标目录下的CSV文件即可实现需求,全程不需要额外安装第三方依赖(除了你已经在用的pandas)。
可直接运行的实现代码
import pandas as pd from pathlib import Path # 配置目标存储目录 csv_folder = Path(r'D:\XXXX\XXXX\output') # 自动收集目录下所有.csv格式的文件路径,自动过滤文件夹、非csv后缀文件 csv_path_list = [f for f in csv_folder.glob("*.csv") if f.is_file()] # 批量读取并合并 merged_df = pd.concat( map(pd.read_csv, csv_path_list), ignore_index=True ) # 打印合并结果预览 print(merged_df) # 如需导出合并后的文件,取消下一行注释即可,utf-8-sig编码可避免Excel打开中文乱码 # merged_df.to_csv(csv_folder / "all_merged.csv", index=False, encoding="utf-8-sig")
适配不同场景的调整说明
- 如果需要递归读取目标目录下所有子文件夹里的CSV文件,把glob匹配规则改成
"**/*.csv"即可,即csv_folder.glob("**/*.csv") - 如果读取CSV时遇到编码报错,可在
pd.read_csv中指定对应编码,比如Windows下导出的CSV常需要加encoding="gbk"参数 - 如果需要固定文件读取顺序,可以在生成
csv_path_list后加一行排序逻辑:csv_path_list.sort(),会按文件名字典序读取 - 如果部分CSV存在空行、特殊分隔符等格式问题,直接在
pd.read_csv里加对应参数适配即可,遍历逻辑不需要改动
内容的提问来源于stack exchange,提问作者viniwata1
相关产品推荐
相关产品推荐

