Google Colab导入谷歌云端硬盘数据集文件夹报IsADirectoryError如何解决
错误原因
IsADirectoryError报错的根本原因是zipfile.ZipFile()方法仅支持操作.zip格式的压缩文件,你传入的PetImages是普通文件夹,不属于可被zipfile读取的压缩包对象,触发了目录类型不匹配错误。
解决方案
分两种适用场景:
场景1:直接使用Drive中已有的未压缩PetImages文件夹
无需使用zipfile相关代码,直接拼接路径使用即可,参考代码:
from google.colab import drive import os drive.mount('/content/gdrive/') DATA_PATH = '/content/gdrive/MyDrive/Colab Notebooks/' PET_IMAGES_ROOT = os.path.join(DATA_PATH, 'PetImages') # 验证路径有效性,正常执行会输出 ['cats', 'dogs'] print(os.listdir(PET_IMAGES_ROOT))
后续读取猫狗图片时,直接从PET_IMAGES_ROOT路径下遍历cats、dogs子目录即可。
场景2:需要使用压缩包形式处理数据集
如果是误将解压后的文件夹上传到了Drive,可按以下步骤操作:
- 本地将PetImages文件夹压缩为
PetImages.zip格式,重新上传到Drive的Colab Notebooks目录 - 修改代码读取压缩包即可,参考代码:
from google.colab import drive import zipfile import os drive.mount('/content/gdrive/') DATA_PATH = '/content/gdrive/MyDrive/Colab Notebooks/' # 注意读取的文件需要带.zip后缀 zf = zipfile.ZipFile(os.path.join(DATA_PATH, "PetImages.zip"), "r") zf.extractall(DATA_PATH) zf.close()
内容的提问来源于stack exchange,提问作者Ghosty
相关产品推荐
相关产品推荐

