当前位置: 首页 > 知识库问答 >
问题:

从控制台或笔记本上拆分Google Bucket中的文件夹

林浩漫
2023-03-14

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

我可以使用“谷歌云存储”库从笔记本电脑上通过这里的帖子连接到bucket。我可以下载,上传文件。我不知道如何在不下载内容的情况下实现文件夹拆分。

谢谢你的帮助。

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

共有1个答案

臧俊杰
2023-03-14

使用云存储,您只能读、写(创建/删除)。不能在bucket中移动blob,即使操作存在于控制台或某个客户机库中,移动也是使用另一个路径写入/创建内容,然后写入/删除前一个路径。

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

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

它比下载和上传文件快,但需要时间。因为它不是一个文件系统,而只是应用编程接口调用,每个文件都需要时间。如果你有成千上万个文件,可能需要几个小时!

 类似资料:
  • 问题内容: 在调试模式下运行runserver时,如何获取Django 1.0将 所有 错误写入控制台或日志文件? 我已经尝试使用具有process_exception函数的中间件类,如对此问题的可接受答案所述: 如何在Django网站上记录服务器错误 对于某些异常,将调用process_exception函数(例如:views.py中的assert(False)),但对于诸如ImportErro

  • 我想将gradle脚本中的所有控制台输出记录到日志文件中: 但是我的gradle脚本提示用户参数: 因此,我有一个NullPointerException: 有人知道这种情况的解决方案或变通方法吗?

  • 问题内容: 我从互联网上找到了下面的代码,可以正常工作,但是它没有将打印控制台写入omt.txt,它仅在第二个catch块之后写入语句。如果您运行该代码,则将理解我的意思。要做的就是将控制台上的所有内容写入“ omt.txt”文件中。 经过一番回答后,我发现我的问题不清楚,对此感到抱歉。我想将控制台输出保存到omt.txt文本文件。如果在控制台上打印了“ Hello 123”,它也应该在omt.t

  • 问题内容: 我正在使用Python笔记本工作,我希望将 大型输入代码[input] 打包到[* .PY]文件中,然后从Notebook调用此文件 。 我知道从笔记本 *中运行[ .PY]文件_ 的操作, 该命令在Linux或Windows之间有所不同。 _ *但是当我执行此操作并从笔记本计算机执行[.PY]文件时,它无法识别笔记本计算机中加载的任何现有库或变量(就像[ .PY]文件从零开始…)。

  • 问题内容: 我编写了一个简单的控制台应用程序,使用ftplib从FTP服务器上载和下载文件。 我希望该应用程序向用户展示其下载/上传进度的一些可视化;每次下载数据块时,我都希望它提供进度更新,即使它只是数字表示形式(如百分比)。 重要的是,我要避免擦除在前几行中已打印到控制台的所有文本(即,我不想在打印更新的进度时“清除”整个终端)。 这似乎是一项相当普通的任务-如何在保留先前程序输出的同时,制作

  • 我不熟悉Mac系统。我想在Mac终端上使用命令导航到java jdk目录。类似于windows命令行上的。 我尝试了来获得路径,但要找到路径是一个挑战 $(/usr/libexec/java_home) /Library/Java/JavaVirtualMachines/jdk-12.0.1。jdk/目录/家庭系统名称:$