Как исправить ошибку ввода / вывода при распаковке zipfile? - PullRequest
0 голосов
/ 17 октября 2019

Я работаю с 150GB + zip-файлом с изображениями dicom. Я пытаюсь извлечь некоторые из них по именам файлов.

Я работаю над интерпретатором google collab python 3 и использую модуль zipfile вместе с методом ZipFile.extractall() для списка имен файлов длиной 500 (например: ['stage_1_train_images / ID_53ff71bc4.dcm', 'stage_1_train_images / ID_001bb2c00). и т.д. ...]):

Вот мой код:

from zipfile import ZipFile 

with ZipFile(src, 'r') as zipObj:
     zipObj.extractall(members = ids, path = '/content/drive/My Drive/RSNA IH DETECTION CHALLENGE/DICOM') #ids is my file list

Я получил сообщение об ошибке:

"OSError: [Errno 5] Input/output error", related to a message in read(self, n) :    "727     "Close the writing handle before trying to read.")"

Я попытался закрыть файл и снова открыть его, попытался извлечь сметод .extract () несколько раз и всегда получал одно и то же сообщение об ошибке.

Сначала я попытался использовать fuse zip вместе с shutil.copyfile(), но он не смог ...

Знаете ли вы, что вызывает это сообщение об ошибке и возможный способ его исправить?

Спасибо за ваши ответы!

1 Ответ

0 голосов
/ 18 октября 2019

Я исправил эту проблему с повторной загрузкой исходного файла. Моя версия, хранящаяся на Google Диске, вероятно, была повреждена. Теперь fuse-zip работает так же, как и методы ZipFile!

...