You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何读取zip压缩包内多层子文件夹下所有CSV文件并拼接合并

原代码失效原因
  • glob仅支持扫描本地磁盘的文件路径,无法直接遍历zip压缩包的内部结构,将ZipFile对象直接与字符串拼接的写法无实际作用
  • 原通配符/*.csv仅匹配压缩包根目录下的csv文件,不会递归遍历所有子文件夹,且pd.read_csv默认无法直接读取未解压压缩包内的嵌套文件
可直接运行的实现方案

无需提前解压压缩包,直接在内存中完成所有文件读取与拼接,节省磁盘空间:

import zipfile
import pandas as pd
from io import BytesIO

df_list = []
with zipfile.ZipFile('/zip_file.zip', 'r') as zf:
    # 遍历压缩包内所有条目
    for entry in zf.infolist():
        # 跳过目录,仅处理csv格式文件
        if entry.filename.endswith('.csv') and not entry.is_dir():
            # 读取文件内容到内存
            file_content = zf.read(entry.filename)
            df = pd.read_csv(BytesIO(file_content), index_col=None, header=0)
            df_list.append(df)

# 纵向拼接所有数据表
final_frame = pd.concat(df_list, axis=0, ignore_index=True)
可选优化提示
  • 若csv文件存在编码问题(如中文乱码),可在pd.read_csv中传入对应编码参数,例如encoding='gbk'、encoding='utf-8-sig'
  • 若压缩包内文件总大小超出内存上限,可在读取每个csv时仅保留需要的字段,减少内存占用

内容的提问来源于stack exchange,提问作者helloworld

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 17:33:32