在python列表中对文件进行排序

时间:2019-02-22 09:33:07

标签: python list sorting

glob.glob(文件名)

这样做有两个文件:

['/srv/tmp/what/123_aaa_bbb_20190110043711.XML',
 '/srv/tmp/what/234_xxx_yyy_20190110043710.XML']

如何按最后一部分(20190110043711)的顺序对其进行排序? 我需要这样的结果:

['/srv/tmp/what/123_aaa_bbb_20190110043710.XML',
 '/srv/tmp/what/234_xxx_yyy_20190110043711.XML']

2 个答案:

答案 0 :(得分:5)

使用sorted

>>> sorted(l,key=lambda x: int(x.split('_')[-1]))
['/srv/tmp/what/234_xxx_yyy_20190110043710.XML', '/srv/tmp/what/123_aaa_bbb_20190110043711.XML']
>>> 

答案 1 :(得分:0)

Does Python have a built in function for string natural sort? 您可以看到这篇文章进行自然排序。

您可以使用https://pypi.org/project/natsort/-natsort 在下面粘贴示例

 a = ['Apple', 'apple15', 'Banana', 'apple14,689', 'banana']
 natsorted(a, alg=ns.REAL | ns.LOCALE | ns.IGNORECASE)