如何批量复制Google Cloud存储桶内多个规律命名文件夹到Colab
Google Colab 批量复制GCS子文件夹实现方案
不用逐行写重复命令,有三种实现方式,按省事程度排序:
- 最省代码:直接用gsutil原生通配符,一行搞定
先创建本地目标文件夹,再用通配符匹配所有编号子集,不需要写循环:!mkdir -p datafolder # 匹配subset0到subset7,如果你实际是0-6共7个文件夹,把[0-7]改成[0-6]即可 !gsutil -m cp -r gs://mybucket/datafolder/subset[0-7] datafolder/ - 命令行循环:适合习惯写shell逻辑的场景
直接在cell里写bash for循环,逐次执行复制命令:!mkdir -p datafolder !for i in {0..7}; do gsutil -m cp -r gs://mybucket/datafolder/subset$i datafolder/; done - Python循环:适合需要加错误校验、自定义日志的场景
Colab默认是Python运行环境,用Python循环灵活度更高,方便后续加逻辑:import os # 自动创建目标文件夹,已存在也不会报错 os.makedirs("datafolder", exist_ok=True) # range(8)对应生成0-7的数字,7个文件夹就改成range(7)生成0-6 for idx in range(8): src_path = f"gs://mybucket/datafolder/subset{idx}" res = os.system(f"gsutil -m cp -r {src_path} datafolder/") if res != 0: print(f"⚠️ subset{idx}复制异常,退出码{res}")
注意:执行复制前先确保Colab已经完成Google Cloud账号认证,未认证的话先跑
!gcloud auth login按提示完成授权即可,否则会报权限错误。
内容的提问来源于stack exchange,提问作者967723
相关产品推荐
相关产品推荐

