如何通过括号中的数字对文件进行排序

问题描述 投票:0回答:1

我是新来的,希望您能帮助我解决我的问题。

我在python中有一个文件夹名称类似的列表:

List = ['file_io(0).txt','file_io(1).txt',....,'file_io(13004).txt']

而且我想通过括号中的数字升序对这些文件进行排序。

如果我使用sort(List),则文件以这种方式排序:

List = ['file_io(0).txt','file_io(1).txt','file_io(10).txt','file_io(100).txt',...]

有人对我有建议或解决方案吗?

谢谢,Len01

python sorting numbers filenames
1个回答
0
投票

您可以使用正则表达式从括号内提取数字,将其转换为int,然后根据该数值排序。

>>> List = ['file_io(0).txt', 'file_io(1).txt', 'file_io(97).txt', 'file_io(100).txt', 'file_io(13004).txt']
>>> sorted(List, key=lambda i: int(re.match(r'file_io\((\d+)\).txt', i).group(1)))
['file_io(0).txt', 'file_io(1).txt', 'file_io(97).txt', 'file_io(100).txt', 'file_io(13004).txt']
© www.soinside.com 2019 - 2024. All rights reserved.