在Python中对文件夹名称进行排序
我想按Python对子文件夹名称列表进行排序,但它不能以所需的方式工作在Python中对文件夹名称进行排序,python,Python,我想按Python对子文件夹名称列表进行排序,但它不能以所需的方式工作 files = ['file_37.png', 'file_8.png', 'file_13.png', 'file_114.png', 'file_115.png'] sorted(files) 输出: ['file_114.png', 'file_115.png', 'file_13.png', 'file_37.png', 'file_8.png'] 显然,Python是在字典形式中对名称进行排序,而不考虑“\”后
files = ['file_37.png', 'file_8.png', 'file_13.png', 'file_114.png', 'file_115.png']
sorted(files)
输出:
['file_114.png', 'file_115.png', 'file_13.png', 'file_37.png', 'file_8.png']
显然,Python是在字典形式中对名称进行排序,而不考虑“\”后面数字的整数值。然而,我想得到的是:
['file_8.png', 'file_13.png', 'file_37.png','file_114.png', 'file_115.png']
有谁能告诉我如何在Python中获得所需的输出吗?您可以使用
键
,这对于以自己的方式进行排序非常有用
键
将函数作为参数。我所做的是用\uu
拆分字符串,并获取其第二部分(索引1
)。例如,如果使用\u37.png
拆分文件[u37.png
,则它将给出['file','37.png']
的列表。因此,使用1
作为索引将返回37.png
。然后使用
再次拆分它,我使用了0
索引返回文件号
def split_x(x):
a=x.分割(“')[1]
a=a.split('.')[0]
返回整数(a)
files=['file_37.png','file_8.png','file_13.png','file_114.png','file_115.png']
已排序(文件,键=拆分)
谢谢你,普拉卡什!现在一切都清楚了!对不起,普拉卡什。即使我想,我也不能投票,因为我还没有足够的声誉。