【问题标题】:Find latest CSV File from S3 bucket using boto3, Python使用 boto3、Python 从 S3 存储桶中查找最新的 CSV 文件
【发布时间】:2020-11-05 03:27:56
【问题描述】:

我想从 S3 Bucket 中找到最新的 .csv 文件,其中包含多种格式文件,如 .json、.xlsx、.csv、.txt 文件。

Client = boto3.client('s3', aws_access_key_id=S3_AccessKey, aws_secret_access_key=S3_SecretKey)
Response = Client.list_objects_v2(Bucket=S3_BucketName, Prefix=PrefixPath)

Files_ListS = Response.get('Contents')

下面的脚本给出了来自 S3 的最新文件,我得到了一些 .json 文件(bcz 最近更新了),我想要 .csv 文件,它在 json 文件之前更新,意味着 csv 文件中的最新文件。

max(Files_ListS , key=lambda x: x['LastModified'])

【问题讨论】:

  • max([f for f in Files_ListS if f['key'].endswith('.csv')], key=lambda x: x['LastModified'])
  • @jordanm,非常感谢,它的工作,请添加答案将接受:)

标签: python python-3.x pandas amazon-s3 boto3


【解决方案1】:

您可以通过检查对象键是否以 .csv 结尾,使用列表推导过滤仅 CSV 文件:

csv_objects = [f for f in Files_ListS if f['Key'].endswith('.csv')]
max(csv_objects, key=lambda x: x['LastModified'])

【讨论】:

  • 次要更正:在 csv_objects = [f for f in Files_ListS if f['Key'].endswith('.csv')]
猜你喜欢
  • 2019-03-22
  • 2018-04-29
  • 2018-01-04
  • 1970-01-01
  • 2018-06-02
  • 1970-01-01
  • 2017-09-29
  • 2016-07-12
  • 2022-01-09
相关资源
最近更新 更多