问题很简单:我在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)都建议只将所有必要的数据加载到笔记本中。
但是,如果我有很多数据,就会很复杂。
有没有解决这个问题的机会?
谢谢你的帮助!
编辑:截至2020年2月,现在有一个自动挂载驱动器的一流UI。
首先,打开左边的文件浏览器。它会显示一个“Mount Drive”按钮。一旦点击,你会看到一个权限提示来挂载驱动器,然后当你返回笔记本电脑时,你的驱动器文件就会出现,没有任何设置。完成的流程如下所示:
原始答案如下。(这同样适用于共享笔记本电脑。)
您可以通过运行以下代码片段挂载您的谷歌驱动器文件:
from google.colab import drive
drive.mount('/content/drive')
然后,您可以在文件浏览器侧面板或使用命令行实用程序与您的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不喜欢复制太多的文件。
之前的大多数答案都有点(非常)复杂,
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操作的方法