从S3存储桶和目录中获取文件名而没有目录名?

时间:2020-04-26 14:59:00

标签: python-3.x amazon-s3

我已连接到S3,并将所有文件保存在S3存储桶foo中,并且来自文件夹poo。 我所有的文件都在S3://foo/poo中。

运行此代码将返回:

[i.key for i in s3_resource.Bucket(foo).objects.filter(Delimiter='/', Prefix='poo/')]

我得到:

['poo/',
 'poo/a.png',
 'poo/b.png',
 'poo/c.png',
.....]

如何摆脱poo/

2 个答案:

答案 0 :(得分:0)

使用rsplit,最大拆分等于1并取第二个值

[i.key.rsplit('/', 1)[1] 
 for i in s3_resource.Bucket(foo).objects.filter(Delimiter='/', Prefix='poo/')
 if i.key.rsplit('/', 1)[1] != '']

应该给

['a.png', 'b.png', 'c.png', ...]

答案 1 :(得分:0)

[i.key for i in s3_resource.Bucket("foo").objects.filter(Delimiter='/', Prefix='poo/') if i.key != 'poo/']