首页 > 解决方案 > 如何使用 Python Boto3 列出和读取 S3 存储桶的特定文件夹中的每个文件

问题描述

我在 s3 存储桶的特定文件夹中有一些文件。所有文件名都采用相同的模式,如下所示:

s3://example_bucket/products/product1/rawmat-2343274absdfj7827d.csv
s3://example_bucket/products/product1/rawmat-7997werewr666ee.csv
s3://example_bucket/products/product1/rawmat-8qwer897hhw776w3.csv
s3://example_bucket/products/product1/rawmat-2364875349873uy68848732.csv
....
....

在这里,我想我们可以说:

bucket_name = 'example_bucket'
prefix = 'products/product1/'
key = 'rawmat-*.csv'

我需要阅读它们中的每一个。我非常不喜欢列出存储桶中的对象。

最有效的方法是什么?

标签: pythonpython-3.xamazon-s3boto3

解决方案


使用前缀遍历文件夹中的对象

bucket_name = 'example_bucket'
prefix = 'products/product1/rawmat'

for my_object in bucket_name.objects.filter(Prefix= prefix):
    print(my_object)

推荐阅读