问题很简单:我在gDrive上有一些数据,例如在 /项目/ my_project / my_data *。

我也有一个简单的笔记本在gColab。

所以,我想做的是:

for file in glob.glob("/projects/my_project/my_data*"):
    do_something(file)

不幸的是,所有的例子(例如https://colab.research.google.com/notebook#fileId=/v2/external/notebooks/io.ipynb)都建议只将所有必要的数据加载到笔记本中。

但是,如果我有很多数据,就会很复杂。 有没有解决这个问题的机会?

谢谢你的帮助!


当前回答

之前的大多数答案都有点(非常)复杂,

from google.colab import drive
drive.mount("/content/drive", force_remount=True)

我发现这是最简单和最快的方法来安装谷歌驱动器到CO实验室,你可以改变挂载目录的位置,只要改变drive.mount的参数。它会给你一个链接,接受与您的帐户的权限,然后你必须复制粘贴生成的密钥,然后驱动器将被安装在选定的路径。

Force_remount仅在必须挂载驱动器时使用,而不管之前是否加载了驱动器。如果不想强制挂载,可以忽略这个when参数

编辑:查看这篇文章,了解更多在colab https://colab.research.google.com/notebooks/io.ipynb中执行IO操作的方法

其他回答

编辑:截至2020年2月,现在有一个自动挂载驱动器的一流UI。

首先,打开左边的文件浏览器。它会显示一个“Mount Drive”按钮。一旦点击,你会看到一个权限提示来挂载驱动器,然后当你返回笔记本电脑时,你的驱动器文件就会出现,没有任何设置。完成的流程如下所示:

原始答案如下。(这同样适用于共享笔记本电脑。)

您可以通过运行以下代码片段挂载您的谷歌驱动器文件:

from google.colab import drive
drive.mount('/content/drive')

然后,您可以在文件浏览器侧面板或使用命令行实用程序与您的Drive文件进行交互。

这是一个笔记本的例子

读取文件夹中的所有文件:

import glob
from google.colab import drive
drive.mount('/gdrive', force_remount=True)

#!ls "/gdrive/My Drive/folder"

files = glob.glob(f"/gdrive/My Drive/folder/*.txt")
for file in files:  
  do_something(file)

不能在colab上永久存储文件。虽然你可以从你的驱动器导入文件,每次当你完成了文件,你可以把它保存回来。

将谷歌驱动器挂载到Colab会话

from google.colab import drive
drive.mount('/content/gdrive')

您可以像写入本地文件系统一样简单地写入谷歌驱动器 现在如果你看到你的谷歌驱动器将加载在文件选项卡。现在您可以从您的colab访问任何文件,您可以写入以及读取它。这些更改将在您的驱动器上实时完成,任何拥有您文件访问链接的人都可以从您的colab查看您所做的更改。

例子

with open('/content/gdrive/My Drive/filename.txt', 'w') as f:
   f.write('values')

从谷歌colab笔记本中提取谷歌Drive zip,例如:

import zipfile
from google.colab import drive

drive.mount('/content/drive/')

zip_ref = zipfile.ZipFile("/content/drive/My Drive/ML/DataSet.zip", 'r')
zip_ref.extractall("/tmp")
zip_ref.close()

使用colab笔记本从谷歌驱动器读取图像

import glob
images_list = glob.glob("add google drive path/*.jpg")
print(images_list)

创建YOLOv4培训所需的training.txt文件

file = open("/content/drive/MyDrive/project data/obj/train.txt", "w") 
file.write("\n".join(images_list)) 
file.close()