s3存储桶中有很多文件。文件夹/文件名格式如下:
s3://bucket/folder/year=1990/1990-01-01.csv
......
s3://bucket/folder/year=2020/2021-01-23.csv
如何使用Python获取最后一个文件名?在上面的示例中,它是2021-01-23.csv
。
您可以选择使用filter
的替代方案:
import boto3
s3r = boto3.resource('s3')
all_files = list(s3r.Bucket('bucket').objects.filter(Prefix='folder/').all())
print(all_files[-1])
它不会根据文件中的日期进行语义检查以查找最后一个。但是,这个例子也可以扩展到这样做。
import glob
import os
# get all csv files recursively inside the folder s3://bucket/folder/
files = glob.glob('s3://bucket/folder/' + '/**/*.csv', recursive=True)
files.sort() # sort them by name
last_file = files[-1] # get the last element
last_file_name = os.path.basename(last_file) # extract filename from filepath