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

如何使用Python从嵌套zip压缩包中提取内层txt文本文件

嵌套ZIP压缩包目标文件提取实现方案

你原来的代码仅能解压外层abc.zip的内容,但是不会自动处理内层的n.zip压缩包,需要额外读取内层压缩包才能提取到Final.txt,以下是两种可行实现方案:

方案一:内存流读取(无需生成临时文件)

直接读取外层压缩包中n.zip的字节流,在内存中解析内层压缩包提取目标文件,无需额外写入临时文件,效率更高:

import zipfile
import io

# 外层压缩包路径,若和脚本同目录直接写文件名即可
outer_zip_path = "abc.zip"
# 内层压缩包在外层包中的文件名
inner_zip_name = "n.zip"
# 目标文件在内层压缩包中的文件名
target_file_name = "Final.txt"

with zipfile.ZipFile(outer_zip_path, 'r') as outer_zip:
    # 读取内层压缩包的字节流
    with outer_zip.open(inner_zip_name) as inner_bytes:
        # 解析内层压缩包
        with zipfile.ZipFile(io.BytesIO(inner_bytes.read())) as inner_zip:
            # 提取目标文件到指定目录,需提取到当前目录可将path改为"./"即可
            inner_zip.extract(target_file_name, path="./extract_result")

方案二:先解压外层再读取内层(适合需要保留中间文件的场景)

如果需要同时保留外层解压出来的n.zip等文件,可以先把外层压缩包解压到临时目录,再读取内层压缩包提取目标文件:

import zipfile
import os
import shutil

outer_zip_path = "abc.zip"
temp_extract_dir = "./temp_outer_extract"
target_file_name = "Final.txt"

# 解压外层压缩包
with zipfile.ZipFile(outer_zip_path, 'r') as outer_zip:
    outer_zip.extractall(temp_extract_dir)

# 读取内层压缩包提取目标文件
inner_zip_path = os.path.join(temp_extract_dir, "n.zip")
with zipfile.ZipFile(inner_zip_path, 'r') as inner_zip:
    inner_zip.extract(target_file_name, path="./")

# 可选:删除临时解压的外层文件
# shutil.rmtree(temp_extract_dir)

注意事项

  • 注意核对文件名拼写,你给出的压缩包结构中标注的是Final.text,需求里写的是Final.txt,要和压缩包内实际文件名保持一致,否则会触发文件不存在的报错
  • 你原代码中写的外层压缩包路径为/abc.zip/是根目录绝对路径,如果abc.zip存放在脚本运行的同级目录下,直接写abc.zip即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 21:06:02