You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python删除GCP Storage中以example开头的文件?

删除GCP存储桶中以指定前缀开头的文件

原代码的问题点

  • bucket.list_blobs()返回的是迭代器,第一次用列表推导式遍历后,迭代器就会耗尽,后续无法再调用
  • 错误使用blobs.blob(file),blob()是Bucket对象的方法,正确写法是bucket.blob(file)
  • 打印语句里的blob_name未定义,执行时会触发报错

修复后的基础版本代码

# 重新获取blob迭代器,避免遍历后耗尽
blobs = bucket.list_blobs()
file_list = [file.name for file in blobs if file.name.startswith('example')]
print(file_list)

for file_name in file_list:
    blob = bucket.blob(file_name)
    blob.delete()
    print(f"Blob {file_name} deleted.")

更高效的推荐写法

无需遍历全部文件,直接用list_blobs的prefix参数过滤目标对象,大幅提升效率:

# 只获取以example开头的blob对象
for blob in bucket.list_blobs(prefix='example'):
    # 可选:排除以/结尾的伪目录对象(GCP无真实目录,这类对象仅用于模拟目录结构)
    if not blob.name.endswith('/'):
        blob.delete()
        print(f"Blob {blob.name} deleted.")

补充说明

  • prefix='example'会精准匹配所有名称以example开头的存储对象,完全覆盖你要删除example-2022-12-07、example-2022-12-08这类文件的需求
  • 如果不需要排除伪目录,可以去掉if not blob.name.endswith('/')这一行

内容的提问来源于stack exchange,提问作者Ajay k

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 09:10:28