版本:

示例:
# -*-coding:utf-8-*-
import pandas as pd
import os
import zipfile
def list_files(directory):
""" 列出指定目录及其子目录下的所有文件 """
out_files = []
for root, dirs, files in os.walk(directory):
for file in files:
out_files.append(os.path.join(root, file))
return out_files
def unzip_file(file_path):
with zipfile.ZipFile(file_path, 'r') as zip_ref:
zip_ref.extractall(os.path.dirname(file_path))
def csv_filter(file):
basename = os.path.basename(file)
return 'Flow' in basename and basename.endswith(".csv")
def zip_filter(file):
return file.endswith('.zip')
directory = r'C:\Users\Administrator\PyCharmMiscProject\data'
# 解压所有zip文件
zip_files = [file for file in list_files(directory) if zip_filter(file) ]
for zip_file in zip_files:
unzip_file(zip_file)
# 获取csv
csv_files = [file for file in list_files(directory) if csv_filter(file) ]
# 合并
df_out = []
for file in csv_files:
df = pd.read_csv(file)
df['file_name'] = [os.path.basename(file)] * len(df)
df_out.append(df)
merge_df = pd.concat(df_out, axis=0)
merge_df.to_excel('out.xlsx', index=False)
输出效果:

打包成可执行exe:
pip install pyinstaller
pyinstaller --onefile your_script.py
浙公网安备 33010602011771号