如何修复 Colaboratory 中的 zipfile 读取错误?
Posted
技术标签:
【中文标题】如何修复 Colaboratory 中的 zipfile 读取错误?【英文标题】:How to fix zipfile read error in Colaboratory? 【发布时间】: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 文件仍然存在此问题 【参考方案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
【讨论】:
不是真的有效。错误依旧,解压速度变慢并停止以上是关于如何修复 Colaboratory 中的 zipfile 读取错误?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Colaboratory 中使用 Tensorboard