问题很简单:我在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)都建议只将所有必要的数据加载到笔记本中。

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

谢谢你的帮助!


当前回答

我很懒,我的记忆力很差,所以我决定创建一个更容易记忆和输入的easycolab:

import easycolab as ec
ec.mount()

确保首先安装它:!pip install easycolab

mount()方法基本上实现了这一点:

from google.colab import drive
drive.mount(‘/content/drive’)
cd ‘/content/gdrive/My Drive/’

其他回答

@wenkesj

我说的是复制目录及其所有子目录。

对我来说,我找到了一个解决方案,看起来像这样:

def copy_directory(source_id, local_target):
  try:
    os.makedirs(local_target)
  except: 
    pass
  file_list = drive.ListFile(
    {'q': "'{source_id}' in parents".format(source_id=source_id)}).GetList()
  for f in file_list:
    key in ['title', 'id', 'mimeType']]))
    if f["title"].startswith("."):
      continue
    fname = os.path.join(local_target, f['title'])
    if f['mimeType'] == 'application/vnd.google-apps.folder':
      copy_directory(f['id'], fname)
    else:
      f_ = drive.CreateFile({'id': f['id']})
      f_.GetContentFile(fname)

然而,我看起来像gDrive不喜欢复制太多的文件。

使用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() 

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

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操作的方法

我很懒,我的记忆力很差,所以我决定创建一个更容易记忆和输入的easycolab:

import easycolab as ec
ec.mount()

确保首先安装它:!pip install easycolab

mount()方法基本上实现了这一点:

from google.colab import drive
drive.mount(‘/content/drive’)
cd ‘/content/gdrive/My Drive/’
from google.colab import drive
drive.mount('/content/drive')

这对我来说是完美的 我后来能够使用操作系统库来访问我的文件,就像我在我的PC上访问它们一样