Python解压zip后筛选读取文件夹内纯数字命名CSV文件并合并
实现方案
核心筛选逻辑可通过Python字符串内置的isdigit()方法实现:将每个文件名拆分为前缀和后缀,仅保留后缀为.csv、且前缀全部为数字的文件即可。
注意:你现有代码中
listdir读取的detail文件夹路径和join拼接文件路径用的路径不一致(前者是han用户目录,后者是han.37),需要先统一避免读取报错。
完整可运行代码如下:
import glob import pandas as pd import zipfile from os import listdir from os.path import isfile, join, splitext path = r'C:\Users\han\Desktop\Selenium' all_files = glob.glob(path + "/*.zip") # 解压所有zip文件 for filename in all_files: with zipfile.ZipFile(filename, 'r') as zip_ref: zip_ref.extractall(path) # 统一detail文件夹路径 detail_path = join(path, 'detail') # 筛选纯数字文件名的csv target_csvs = [] for f in listdir(detail_path): file_full_path = join(detail_path, f) # 跳过文件夹 if not isfile(file_full_path): continue # 拆分文件名前缀和后缀 file_name, file_ext = splitext(f) # 校验后缀为csv、前缀纯数字 if file_ext.lower() == '.csv' and file_name.isdigit(): target_csvs.append(file_full_path) # 读取所有符合条件的csv并合并 df_list = [] for csv_path in target_csvs: df_list.append(pd.read_csv(csv_path)) merged_result = pd.concat(df_list, ignore_index=True)
合并后的数据会存储在merged_result变量中,可根据需要做后续导出或计算操作。
内容的提问来源于stack exchange,提问作者Eren Han
相关产品推荐
相关产品推荐

