如何用python删除GCS文件夹下所有文件

# 获取指定文件夹下的所有 Blob
blobs = client.list_blobs(bucket_name='your_bucket_name', prefix=folder_path)

对于GCS而言,文件夹和文件都属于Object,所以使用list_blobs,会取得该文件夹下的所有文件夹,和文件。
比如,这个文件夹叫root,有子文件夹sub_root_1是个空的,sub_root_2里面有hello.txt,那么list_blobs后的结果集就是:

/root
/root/sub_root_1
/root/sub_root_2/hello.txt

这个时候,如果循环执行blob.delete()是会报错的,因为blob.delete()只能删除文件。

所以需要过滤一下。

from google.cloud import storage

# 创建 GCS 客户端对象
client = storage.Client()

# 指定要删除的文件夹和存储桶名称
folder_name = 'your_folder_name'
bucket_name = 'your_bucket_name'

# 获取 GCS 存储桶和指定文件夹下的所有 Blob
bucket = client.get_bucket(bucket_name)
blobs = bucket.list_blobs(prefix=folder_name)

# 遍历并删除所有文件
for blob in blobs:
    # 如果 Blob 的名称以 "/" 结尾,则跳过该 Blob,因为它是一个文件夹
    if blob.name.endswith('/'):
        continue
    blob.delete()

在这个代码中,使用 blob.name.endswith('/') 来检查 Blob 的名称是否以 / 结尾。如果是,则跳过该 Blob,因为它是一个文件夹。否则,将调用 blob.delete() 方法来删除该文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值