Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.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 如何正确迭代已过滤的AWS存储桶?_Python_Amazon S3_Boto3 - Fatal编程技术网

Python 如何正确迭代已过滤的AWS存储桶?

Python 如何正确迭代已过滤的AWS存储桶?,python,amazon-s3,boto3,Python,Amazon S3,Boto3,我在使用boto3 API时遇到问题。我试图从S3存储桶中特定文件夹中的文件中获取数据。我能做的最接近于让它工作的事情如下所示: bucket = s3_resource.Bucket(name='mybucket') for f in bucket.objects.filter(Prefix='raw/2019/12/05/08'): print(f.get()['Body'].read()) 在相应的文件夹中有5个文件,我认为这个循环每次迭代都会读取所有5个文件。这是怎么回事?我该

我在使用boto3 API时遇到问题。我试图从S3存储桶中特定文件夹中的文件中获取数据。我能做的最接近于让它工作的事情如下所示:

bucket = s3_resource.Bucket(name='mybucket')
for f in bucket.objects.filter(Prefix='raw/2019/12/05/08'):
    print(f.get()['Body'].read())

在相应的文件夹中有5个文件,我认为这个循环每次迭代都会读取所有5个文件。这是怎么回事?我该怎么做呢?

您有一个循环,因此它当然会遍历筛选文件夹中bucket的所有内容。你想实现什么?我的意思是,对于循环的每次迭代,文件夹中的每个文件都会被打印出来。你正在迭代前面提到的前缀路径中的文件,你基本上在执行一个GET,它会给你一个s3资源对象,当获取“Body”并从中读取时,它开始下载文件,你还期待什么?@他们说你的代码对我来说非常好。但是,如果要指定目录,则应在前缀末尾添加一个
/
。否则,它将包括使用
08
的其他文件夹。用法:
Prefix='raw/2019/12/05/08/'