【问题标题】:How to fix zipfile read error in Colaboratory?如何修复 Colaboratory 中的 zipfile 读取错误?
【发布时间】:2019-12-27 08:38:08
【问题描述】:

使用 colaboratory 将 zipfile 提取到我的谷歌驱动器时,我收到一条错误消息,提示 zipfile 读取错误。如何解决?

我正在尝试使用以下 python 3 脚本解压缩文件:

from google.colab import drive
drive.mount('/gdrive')

!unzip '/gdrive/My Drive/file.zip' -d '/gdrive/My Drive/Destination/'

从 zip 中提取 4 个文件后出现此错误

error:  zipfile read error

【问题讨论】:

  • 我也有同样的问题。你有没有解决过这个问题
  • 同样的问题,我正在从 colab 本地存储中的驱动器中提取文件,在提取 2628/10000 个图像后,它会导致 zip 文件错误并终止。我尝试了各种替代方案,但没有解决方案。
  • 遇到了同样的问题,卸载和重新安装的驱动器对我有用
  • 有什么解决办法吗?我也面临同样的问题。
  • 2020 年 8 月,25 GB zip 文件仍然存在此问题

标签: python-3.x


【解决方案1】:

试试这个:

import zipfile
import os

file_location = 'file_path/file_name.zip'

with zipfile.ZipFile(file_location, 'r') as zip_ref:
    zip_ref.extractall('/content') # Replace '/content' with where you want to extract all files.

我希望它不会显示任何错误。

【讨论】:

    【解决方案2】:

    我无法解决为什么,但能够使用以下 Python 代码解决问题(以及一些流程信息):

    from zipfile import ZipFile
    
    # Get information about how much you're decompressing
    zf = ZipFile('./gdrive/My Drive/poizon/data/images.zip')
    uncompress_size = sum((file.file_size for file in zf.infolist()))
    print('uncompressed_size',uncompress_size/1e6)
    
    # Loop through all files attempting to decompress each individually
    extracted_size = 0
    for file in zf.infolist():
        extracted_size += file.file_size
        print ("%s %%" % (extracted_size * 100/uncompress_size))
        try:
          zf.extract(file)
        except:
          continue
    

    【讨论】:

    • 不是真的有效。错误依旧,解压速度变慢并停止
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-17
    • 1970-01-01
    • 2019-05-21
    • 2019-10-07
    • 2019-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多