首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python3+ boto3 + s3:下载文件夹中的所有文件

Python3+ boto3 + s3:下载文件夹中的所有文件
EN

Stack Overflow用户
提问于 2019-07-18 01:16:25
回答 1查看 731关注 0票数 0

我正在编写一个Python3.4+ boto3脚本来下载s3存储桶/文件夹中的所有文件。我使用s3.resource而不是client,因为这个EMR集群已经拥有密钥凭据。

这可用于下载单个文件:

代码语言:javascript
运行
复制
s3 = boto3.resource('s3')
bucket = "my-bucket"
file = "some_file.zip"
filepath = "some_folder/some_file.zip"


def DL(bucket, key, local_name):
    s3.Bucket(bucket).download_file(key, local_name)

DL(bucket, filepath, file)

但我需要下载存储桶中文件夹中的所有文件,其格式如下:

代码语言:javascript
运行
复制
some_file_1.zip
some_file_2.zip
some_file_3.zip, etc.

它应该很简单,但我想我们不能使用通配符或模式匹配,比如"some_file*“。所以我必须遍历并找到每个文件名?

并为每个文件名调用download_file?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-18 17:48:15

您可以使用listobjectsv2并传递前缀,以便仅获取s3“文件夹”中的密钥。现在,您可以使用for循环遍历所有这些密钥并下载它们。如果需要对条件进行更多过滤,请使用条件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57081150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档