Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何检查给定s3存储桶中是否存在给定目录或文件夹,如果存在,如何从s3中删除该文件夹?_Python_Python 3.x_Amazon S3_Boto_Boto3 - Fatal编程技术网

Python 如何检查给定s3存储桶中是否存在给定目录或文件夹,如果存在,如何从s3中删除该文件夹?

Python 如何检查给定s3存储桶中是否存在给定目录或文件夹,如果存在,如何从s3中删除该文件夹?,python,python-3.x,amazon-s3,boto,boto3,Python,Python 3.x,Amazon S3,Boto,Boto3,我想检查给定s3存储桶中是否存在文件夹或目录,如果存在,我想使用python代码从s3存储桶中删除文件夹 示例:s3:/bucket124/test 这里“bucket124”是bucket,“test”是包含一些文件的文件夹,如test.txt test1.txt 我想从我的s3存储桶中删除文件夹“test”。以下是您将如何执行此操作 import boto3 s3 = boto3.resource('s3') bucket=s3.Bucket('mausamrest'); obj = s3

我想检查给定s3存储桶中是否存在文件夹或目录,如果存在,我想使用python代码从s3存储桶中删除文件夹

示例:
s3:/bucket124/test

这里“
bucket124
”是bucket,“test”是包含一些文件的文件夹,如
test.txt test1.txt


我想从我的s3存储桶中删除文件夹“
test
”。

以下是您将如何执行此操作

import boto3

s3 = boto3.resource('s3')
bucket=s3.Bucket('mausamrest');
obj = s3.Object('mausamrest','test/hello')
counter=0

for key in bucket.objects.filter(Prefix='test/hello/'):
    counter=counter+1

if(counter!=0):
    obj.delete()
print(counter)

mausamrest是存储桶,test/hello/是要检查项目的目录,但是请注意一件事,在检查之后,您必须删除test/hello而不是test/hello/来删除特定的子文件夹,因此第5行中的键名是test/hello

您尝试了什么?它在哪里失败了?从botocore导入boto3.errorfactory从boto.s3导入ClientError.connection导入S3Connection,Bucket,Key s3=boto3.client('s3',aws_access_Key_id='AKIA',aws_secret_access_Key='vfEn')try:Bucket=Bucket('AKIA',vfEn')s3 head object(Bucket='Bucket='Bucket 124',Key='test k=boto3.Key(bucket=bucket124,name='test')k.delete()除了ClientError:print(“未找到文件”)我尝试了上面的代码将其编辑到您的问题中。如果您需要实际帮助,请考虑将
for
-的
obj
重命名为其他名称,以避免混淆。您确定此方法不会受到所述问题的困扰吗(例如,像
test/hello这样的路径不应该被删除/
也被删除)?