我正在使用 glob.glob()来获取目录中的文件列表。
结果是这个列表。有一种方法可以使用文件名的int部分对它进行排序吗?
['export_p-01.xml',
'export_p-02.xml',
'export_p-03.xml',
'export_p-04.xml',
'export_p-05.xml',
'export_p-06.xml',
'export_p-07.xml',
'export_p-08.xml',
'export_p-09.xml',
'export_p-10.xml',
'export_p-100.xml',
'export_p-101.xml',
'export_p-102.xml',
'export_p-103.xml',
'export_p-104.xml',
'export_p-105.xml',
'export_p-106.xml',
'export_p-107.xml',
'export_p-108.xml',
'export_p-109.xml',
'export_p-11.xml',
]
答案 0 :(得分:1)
在这里,您可以使用自定义lambda作为键:
In [1]: l = ['export_p-01.xml', ...]
In [2]: sorted(l, key = lambda x: int(x.split(".")[0].split("-")[-1]))
Out[2]:
['export_p-01.xml',
'export_p-02.xml',
'export_p-03.xml',
'export_p-04.xml',
'export_p-05.xml',
'export_p-06.xml',
'export_p-07.xml',
'export_p-08.xml',
'export_p-09.xml',
'export_p-10.xml',
'export_p-11.xml',
'export_p-100.xml',
'export_p-101.xml',
'export_p-102.xml',
'export_p-103.xml',
'export_p-104.xml',
'export_p-105.xml',
'export_p-106.xml',
'export_p-107.xml',
'export_p-108.xml',
'export_p-109.xml']