Google colab 和 google drive:将文件从 colab 复制到 Google Drive

zzt*_*top 10 google-drive-api google-colaboratory

似乎有很多方法可以从 Colab 访问 Google Drive 上的文件,但没有简单的方法可以将文件从 Google Colab 保存回 Google Drive。

例如,要从 Colab 访问 Google Drive 文件,您可以使用

from google.colab import drive
drive.mount('/content/drive')
Run Code Online (Sandbox Code Playgroud)

但是,要将您在 Colab 中生成的输出文件保存在 Google Drive 上,这些方法似乎非常复杂,如下所示:

将文件从 Colab 上传到 Google Drive 文件夹

安装 Google Drive 后,您甚至可以在 Colab 的目录中查看驱动器文件。有没有简单的方法可以将在 Colab 中创建并在 Colab 目录中可见的文件保存或复制回 Google Drive?

注意:我不想使用类似的东西将它保存到本地机器

from google.colab import files
files.download('example.txt')
Run Code Online (Sandbox Code Playgroud)

因为文件很大

Kor*_*ich 16

安装驱动器后,您可以将其复制到那里。

# mount it
from google.colab import drive
drive.mount('/content/drive')
# copy it there
!cp example.txt /content/drive/MyDrive
Run Code Online (Sandbox Code Playgroud)

  • 在colab中,它给出`cp:无法打开'/content/drive/My Drive/file.gdoc'进行阅读:不支持操作` (5认同)
  • @SantoshGupta7 当路径的“MyDrive”部分错误时,就会出现该错误(至少对我来说)。就我而言,我省略了它,在您发布的错误消息中,它有一个空格(“My Drive”而不是“MyDrive”)。 (2认同)

小智 12

其他答案建议如何复制特定文件,我想提一下,您还可以复制整个目录,这在将回调从 Colab 复制到 Drive 时非常有用:

from google.colab import drive
drive.mount('/content/drive')
Run Code Online (Sandbox Code Playgroud)

就我而言,文件夹名称是:

%cp -av "/content/logs/scalars/20201228-215414" "/content/drive/MyDrive/Colab Notebooks/logs/scalars/manual_add"
Run Code Online (Sandbox Code Playgroud)


小智 6

您可以使用shutil在 Colab 和 google Drive 之间复制/移动文件

import shutil
shutil.copy("/content/file.doc", "/content/gdrive/file.doc")
Run Code Online (Sandbox Code Playgroud)

  • 我收到 OSError: [Errno 95] 不支持操作: '/content/gdrive/file.doc' (2认同)

小智 5

保存文件时,只需指定保存文件的 Google Drive 路径即可。

使用大文件时,Colab 有时会异步同步虚拟机和驱动器。要强制同步,只需运行:

from google.colab import drive
drive.flush_and_unmount()
Run Code Online (Sandbox Code Playgroud)