我已将多个文件夹从云端硬盘导入Google Colab。较小的文件夹在列出目录时可以正常工作,但是当我尝试在较大的文件夹中列出目录时,Colab给我一个错误。
我知道还有其他列出目录的方法,但是当我尝试访问文件进行培训时,同样的问题也导致了其他问题。
我正在使用它导入文件:
from google.colab import drive
drive.mount('/content/drive')
然后描述文件夹如下:
TRAIN = '../content/drive/My Drive/train/'
TEST = '../content/drive/My Drive/test/'
当我尝试执行以下操作时:
print(os.listdir(TEST))
print(os.listdir(TRAIN))
TEST打印正常。它具有大约8000个文件(所有图像)。
TRAIN有时会打印,而其他时候则不会!它大约有32,000个文件(也有所有图像)。 当我尝试运行它时,它将显示以下内容:
OSError: [Errno 5] Input/output error: '../content/drive/My Drive/train/'
有人知道如何在Google colab中解决此问题吗?
我发现,如果在导入文件后我稍等片刻然后运行打印文件,该文件就会运行,这表明即使在单元格导入停止运行之后,Colab也需要一段时间来处理来自Drive的文件。
答案 0 :(得分:0)
当目录中的文件数量变多时,驱动器FUSE操作可能会超时。
驱动器目录的I / O操作与目录中文件的数量成正比。由于FUSE客户端中存在固定的超时,因此当文件数量足够大时,目录中的操作将失败。
一种解决方法是将文件组织到子目录中,以使单个目录中的文件或文件夹的数量不会变得太大。
答案 1 :(得分:0)
OSError: [Errno 5] Input/output error: '../content/drive/My Drive/train/'
原因是Google colab无法读取文件树,因为'../content/drive/My Drive/train/'
因此,请将其更改为'content/drive/My Drive/train/'
。(或根据您当前的工作目录提供完整路径)