您现在的位置是:网站首页>文章详情文章详情

zlib.error:解压缩时出现错误-3

inlike2019-11-23 原创文章 浏览(3272) 评论(0) 喜欢(27)

简介python解压含目录的zip文件时,提示错误信息:zlib.error:解压缩数据时出错-3:距离太远了

python解压含目录的zip文件时,提示错误信息:zlib.error:解压缩数据时出错-3:无效距离太远,这个错误多数是由于zip文件内部包含错误的文件导致的。

追溯(最近一次通话):  文件“ F:\ anaconda \ lib \ site-packages \ IPython \ core \ interactiveshell.py”,行2881,在run_code中    exec(code_obj,self.user_global_ns,self.user_ns)  <模块>中第1行的文件“ <ipython-input-7-921d5ce257a1>”    zfobj.extractall('bangzhanbrower.exe')  提取文件中的文件“ F:\ anaconda \ lib \ zipfile.py”,行1491    self.extract(zipinfo,path,pwd)  提取中的文件“ F:\ anaconda \ lib \ zipfile.py”,行1479    返回self._extract_member(成员,路径,密码)  _extract_member中的文件“ F:\ anaconda \ lib \ zipfile.py”,第1543行    shutil.copyfileobj(源,目标)  copyfileobj中的文件“ F:\ anaconda \ lib \ shutil.py”,第79行    buf = fsrc.read(长度)  读取文件“ F:\ anaconda \ lib \ zipfile.py”,行847    数据= self._read1(n)  _read1中的文件“ F:\ anaconda \ lib \ zipfile.py”,第923行    数据= self._decompressor.decompress(data,n)zlib.error:解压缩数据时出现错误-3:距离太远的无效距离

手动解压zip文件出现如下错误提示:

image.png


附带python解压zip文件的函数,适用于zip文件内部包含目录结构。

import zipfile
import os
import shutil


def uzip(zp_file, dir):
    """
    解压缩zip文件(含目录)
    :param zipfile: 带解压文件
    :param dir: 解压到文件夹
    :return:
    """

    if not os.path.exists(dir):
        os.mkdir(dir)
    zp = zipfile.ZipFile(zp_file, 'r')
    for name in zp.namelist():
        name = name.replace('\\''/')
        if name.endswith('/'):
            p = os.path.join(dir, name[:-1])
            if os.path.exists(p):
                shutil.rmtree(p)
            os.mkdir(p)
        else:
            ext_filename = os.path.join(dir, name)
            ext_dir = os.path.dirname(ext_filename)
            if not os.path.exists(ext_dir):
                os.mkdir(ext_dir)
            with open(ext_filename, 'wb'as outfile:
                outfile.write(zp.read(name))



很赞哦! ( 27)
    《Python实战进阶》
    None
    None
    夏至已深

站点信息

  • 建站时间:2019-5-24
  • 网站程序:like in love
  • 主题模板《今夕何夕》
  • 文章统计:104条
  • 文章评论:***条
  • 微信公众号:扫描二维码,关注我们
  • 个人微信公众号