我是新来的,希望您能帮助我解决我的问题。
我在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
您可以使用正则表达式从括号内提取数字,将其转换为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']