使用python获取最新的两个文件

时间:2018-03-14 19:33:02

标签: python python-3.x amazon-web-services boto3

我正在尝试从下面的输出中提取最新日期和时间的两个ami id。我怎么用python做到这一点?预期结果:ami-x1,ami-x9

for image in images:
    created_date = datetime.strptime(image.creation_date, "%Y-%m-%dT%H:%M:%S.000Z")
    print(image.id, created_date)

输出:

ami-x1 2018-03-14 14:53:38
ami-x2 2018-03-13 14:34:34
ami-x3 2018-03-09 16:24:49
ami-x4 2018-03-12 14:32:44
ami-x5 2018-03-13 15:29:37
ami-x6 2018-03-07 15:38:03
ami-x7 2018-03-08 15:33:44
ami-x8 2018-03-06 23:20:24
ami-x9 2018-03-13 17:01:15
ami-x10 2018-03-05 15:43:09

我还可以生成具有纪元时间戳的image.id文件名。使用filename epoch提取最新的两个更容易吗?

test1-useast2-1521039086
test2-useast2-1520951547
test3-useast2-1520612589
test4-useast2-1520865070
test5-useast2-1520954877
test6-useast2-1520436979
test7-useast2-1520523129
test8-useast2-1520378310
test9-useast2-1520960373
test10-useast2-1520264490

如果您有任何意见,请告诉我。

1 个答案:

答案 0 :(得分:3)

您可以尝试使用内置函数sorted(),其强大功能为lambda s:

first, second = sorted(
    images,
    key=lambda x: datetime.strptime(x.creation_date, "%Y-%m-%dT%H:%M:%S.000Z"),
    reverse=True
)[:2]
print(first.id, second.id) # get and print id values