如何将文件从 colab 或云存储复制到谷歌驱动器?

use*_*694 5 gsutil google-cloud-platform

我阅读了一些关于这个问题的代码,但我无法理解代码。有人可以帮我解释一下代码吗?

# mount your drive
from google.colab import drive
drive.mount('/content/drive')
!gsutil -q -m cp -r gs://my-bucket-name drive /content/drive/My\ Drive/
Run Code Online (Sandbox Code Playgroud)

我想将文件从 colab 或谷歌云存储传输到 gdrive。代码中的“drive /content/drive/My\ Drive/”代表什么?我应该如何解析这段代码。如果它适用于目录,我应该如何修改这段代码以使其适用于单个文件?

小智 5

!cp "colab-path" -r "drive-path"
Run Code Online (Sandbox Code Playgroud)


mho*_*lum 4

gsutil cp -r从一个或多个源文件/目录到某个目标目录进行递归复制。例如,要将一个或多个目录复制到另一个目录中,您可以这样做:

gsutil cp -r src_folder1/ src_folder2/ dst_folder/
Run Code Online (Sandbox Code Playgroud)

那么,让我们解释一下上面的示例中发生的一切:

  • drive.mount()您首先使用一些文件系统适配器魔法在本地目录下通过 挂载 Google Drive 的内容/content/drive
  • 然后您运行gsutil命令。gsutil将参数“drive”视为另一个源文件(或目录),应将其复制到目录“/content/drive/My Drive/”。如果文件/目录“驱动器”不存在,gsutil 会跳过它并抱怨它不存在(但 gsutil 仍会将其他源参数复制到目标,因为该标志-m导致它继续(在可能的情况下) )遇到问题时)。

因此,如果您想将名为“my-object-name”的对象从存储桶复制到 Google 云端硬盘的根目录,命令将如下所示:

!gsutil -q -m cp gs://my-bucket-name/my-object-name /content/drive/My\ Drive/
Run Code Online (Sandbox Code Playgroud)

或者,复制对象并为其命名不同的名称:

!gsutil -q -m cp gs://my-bucket-name/my-object-name /content/drive/My\ Drive/some-new-name
Run Code Online (Sandbox Code Playgroud)

要了解有关gsutil、其顶级标志及其cp命令的更多信息,请查看网络文档: