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

如何在Jupyter Notebook中列出GCS桶中匹配指定模式的文件/对象?

解决GCS桶中匹配通配符模式列出文件的问题

问题原因

GCS的prefix参数仅支持前缀精确匹配,不识别*这类通配符。你之前设置prefix='MY_FILES_*.model',会把整串当作前缀去查找,自然匹配不到MY_FILES_0.model这类文件。

两种可行解决方案

方案1:前缀过滤+本地模式匹配(兼容所有SDK版本)

先通过前缀筛选出范围更小的对象集合,再用Python的fnmatch模块做本地模式匹配,适合复杂模式场景:

from google.cloud import storage
import fnmatch

# 初始化GCS客户端与桶实例
client = storage.Client()
bucket = client.get_bucket('你的桶名称')

# 获取所有前缀为MY_FILES_的对象
blobs = bucket.list_blobs(prefix='MY_FILES_')

# 筛选符合MY_FILES_*.model模式的对象
matching_files = [blob.name for blob in blobs if fnmatch.fnmatch(blob.name, 'MY_FILES_*.model')]

# 输出结果
for file_name in matching_files:
    print(file_name)

方案2:使用SDK内置的match_glob参数(推荐,需SDK版本≥2.0.0)

从google-cloud-storage 2.0.0版本开始,list_blobs方法支持match_glob参数,可直接传入通配符模式,由GCS服务端完成过滤,效率更高:

from google.cloud import storage

client = storage.Client()
bucket = client.get_bucket('你的桶名称')

# 直接通过match_glob指定匹配模式
matching_blobs = bucket.list_blobs(match_glob='MY_FILES_*.model')

# 遍历输出匹配的文件名
for blob in matching_blobs:
    print(blob.name)

如果你的SDK版本低于2.0.0,执行以下命令升级:

pip install --upgrade google-cloud-storage

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 10:25:05