【问题标题】:Splitting folders in a Google Bucket either from the Console or from a Notebook从控制台或笔记本拆分 Google 存储桶中的文件夹
【发布时间】:2021-02-25 03:24:13
【问题描述】:

假设我的存储桶中有 10 个文件夹。我想以 0.8,0.1,0.1 的比例拆分文件夹的内容,并将它们移动到三个新文件夹 Train、Test 和 Val。我之前已经通过下载文件夹、拆分并再次上传它们来完成此过程。我现在想在存储桶本身中拆分他的文件夹。

我能够使用来自 Notebook 的“google-cloud-storage”库使用帖子here 连接到存储桶。我能够下载,上传文​​件。我不确定如何在不下载内容的情况下实现拆分文件夹。

感谢您的帮助。

PS:我不需要完整的代码,只是如何处理就可以了

【问题讨论】:

    标签: python-3.x google-cloud-platform jupyter-notebook


    【解决方案1】:

    使用 Cloud Storage,您只能读取、写入(创建/删除)。您不能在存储桶内移动 blob,即使该操作存在于控制台或某些客户端库中,移动也是使用另一个路径对内容进行 WRITE/CREATE,然后对前一个路径进行 WRITE/DELETE。

    因此,您的策略必须遵循相同的逻辑:

    • 执行gsutil ls 列出所有文件
    • 在一个目录中复制(或移动)80%,在另外 2 个目录中复制(或移动)10% 和 10%
    • 删除旧目录(如果使用移动操作则无用)。

    这比下载和上传文件要快,但需要时间。因为它不是文件系统,而只是API调用,所以每个文件都需要时间。如果您有数千个文件,则可能需要数小时!

    【讨论】:

      猜你喜欢
      • 2021-02-22
      • 2019-10-22
      • 2021-06-02
      • 2021-08-16
      • 1970-01-01
      • 1970-01-01
      • 2020-05-21
      • 2020-10-17
      • 2016-02-10
      相关资源
      最近更新 更多