Google Colab的云端硬盘文件夹包含很多文件时出现问题

时间:2019-02-13 00:59:07

标签: python jupyter-notebook google-colaboratory

我已将多个文件夹从云端硬盘导入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的文件。

2 个答案:

答案 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/'。(或根据您当前的工作目录提供完整路径)