我正在使用150GB以上的dicom图片压缩文件。 我试图通过它们的文件名提取其中一些。
我正在使用google collab python 3解释器,并在长度为500的文件名列表中使用zipfile模块以及ZipFile.extractall()
方法(例如:['stage_1_train_images / ID_53ff71bc4.dcm','stage_1_train_images / ID_001bb2c00.dcm ',etc ...]):
。
这是我的代码:
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()方法提取多次,并且总是收到相同的err消息。
我第一次尝试与shutil.copyfile()
一起使用保险丝拉链,但未能成功...
您知道导致此错误消息的原因以及可能的解决方法吗?
感谢您的回答!
答案 0 :(得分:0)
我通过重新下载原始文件解决了此问题。 我存储在Google云端硬盘中的版本可能已损坏。 现在,fuse-zip和ZipFile方法一样有效!