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

Zip文件解压异常:已创建文件夹但未提取数据至指定目录

问题分析与修复方案
  • 核心错误:ZipFile路径未指定具体文件
    代码里with ZipFile(f'C:/Data/Test/test1/') as zipObject:仅传入了目录路径,未拼接当前循环的zipfile文件名,导致程序尝试打开整个目录而非单个zip文件,自然无法提取任何内容。正确路径应为C:/Data/Test/test1/{zipfile}。

  • 次要问题:未过滤zip文件
    glob.glob('C:/Data/Test/test1/*')会匹配目录下所有文件和子文件夹,包括非zip格式的文件,后续处理会引发错误。建议改为glob.glob('C:/Data/Test/test1/*.zip')仅匹配zip文件。

  • 异常处理优化
    原代码用except:捕获所有异常,不利于排查问题,建议捕获具体的OSError;同时修正子目录存在时的提示文本(原提示写的是subdir,但实际创建的是full)。


修复后的完整代码

import os
from zipfile import ZipFile
import glob

# 仅匹配目标目录下的zip文件
zipfiles = [os.path.basename(x) for x in glob.glob('C:/Data/Test/test1/*.zip')]

for zipfile in zipfiles:
    new_dirname = zipfile.replace('.bin.', '_')
    parent_dir = f'output/{new_dirname}'
    full_dir = f'{parent_dir}/full'
    
    # 创建父目录
    try:
        os.mkdir(parent_dir)
    except OSError:
        print(f'{parent_dir} already exists')
    
    # 创建full子目录
    try:
        os.mkdir(full_dir)
    except OSError:
        print(f'{full_dir} already exists')
    
    # 拼接正确的zip文件路径并执行提取
    zip_path = f'C:/Data/Test/test1/{zipfile}'
    with ZipFile(zip_path) as zipObject:
        zipObject.extractall(path=full_dir)
        print(f'已成功提取 {zipfile} 到 {full_dir}')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 01:52:15