【问题标题】:Google colab and google drive: Copy file from colab to Google DriveGoogle colab 和 google drive:将文件从 colab 复制到 Google Drive
【发布时间】:2021-10-02 18:36:58
【问题描述】:

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

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

挂载 Google Drive
from google.colab import drive
drive.mount('/content/drive')

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

Upload File From Colab to Google Drive Folder

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

注意:我不想使用类似

的方式将其保存到本地计算机
from google.colab import files
files.download('example.txt')

因为文件很大

【问题讨论】:

    标签: google-drive-api google-colaboratory


    【解决方案1】:

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

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

    【讨论】:

    • 在 colab 中它给出了cp: cannot open '/content/drive/My Drive/file.gdoc' for reading: Operation not supported
    • @SantoshGupta7 你有没有找到解决方案?我正在尝试备份我的文件并遇到了同样的问题。
    • 我不记得了,但我记得使用谷歌云作为解决某些问题的方法
    • @SantoshGupta7 当路径的“MyDrive”部分错误时,会出现该错误(至少对我而言)。就我而言,我忽略了它,在您发布的错误消息中,它有一个空格(“My Drive”而不是“MyDrive”)。
    【解决方案2】:

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

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

    在我的例子中,文件夹名称是:

    %cp -av "/content/logs/scalars/20201228-215414" "/content/drive/MyDrive/Colab Notebooks/logs/scalars/manual_add"
    

    【讨论】:

      【解决方案3】:

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

      使用大文件时,Colab 有时会异步同步 VM 和 Drive。要强制同步,只需运行:

      from google.colab import drive
      drive.flush_and_unmount()
      

      【讨论】:

        【解决方案4】:

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

        import shutil
        shutil.copy("/content/file.doc", "/content/gdrive/file.doc")
        

        【讨论】:

        • 这非常有效(只需正确获取 Google 驱动器目录),它比在 Colab 中单击文件旁边的 3 个点、下载到本地驱动器然后上传到 Google 驱动器要快得多.谢谢!!!! 3.14gb 文件不到 30 秒。
        • 我收到 OSError: [Errno 95] Operation not supported: '/content/gdrive/file.doc'
        【解决方案5】:

        在左侧的 Colab 目录中看到该文件后,只需将该文件拖到同一面板上的“/content/drive/My Drive/”目录中即可。一旦文件进入您的“我的云端硬盘”,您就可以在 Google 云端硬盘中看到它。

        【讨论】:

          【解决方案6】:

          安装驱动器后...

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

          ...只需添加完整路径,包括您要写入的文件的安装路径 (/content/drive)。

          someList = []
          with open('/content/drive/My Drive/data/file.txt', 'w', encoding='utf8') as output:
              for line in someList:
                  output.write(line + '\n') 
          

          在这种情况下,我们将其保存在一个名为 data 的文件夹中,该文件夹位于您的 Google Drive 的根目录中。

          【讨论】:

            【解决方案7】:

            在我的例子中,我使用!cp 命令的常用方法。

            但有时,它在 Colab 中不起作用,因为我们没有输入正确的文件路径。

            基本代码:!cp source_filepath destination_filepath

            实现代码: !cp /content/myfolder/myitem.txt /content/gdrive/MyDrive/mydrivefolder/

            另外,为了正确输入路径,可以从左侧目录中点击点菜单->复制路径复制路径位置。

            【讨论】: