200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 如何用python删除GCS文件夹下所有文件

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

时间:2019-10-08 03:38:31

相关推荐

如何用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 存储桶和指定文件夹下的所有 Blobbucket = client.get_bucket(bucket_name)blobs = bucket.list_blobs(prefix=folder_name)# 遍历并删除所有文件for blob in blobs:# 如果 Blob 的名称以 "/" 结尾,则跳过该 Blob,因为它是一个文件夹if blob.name.endswith('/'):continueblob.delete()

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。