Python中如何按XLOG后数字大小逆序排序XLOGindex.LOG格式文件名列表
简便实现方案
直接使用Python内置的排序方法,自定义排序规则即可实现,不需要手动提取最大值再生成列表,一行代码就能完成。
实现代码
你的原始文件列表如下:
listOfFiles = ['XLOG100.LOG', 'XLOG101.LOG', 'XLOG102.LOG', 'XLOG103.LOG', 'XLOG104.LOG', 'XLOG105.LOG', 'XLOG106.LOG', 'XLOG107.LOG', 'XLOG108.LOG', 'XLOG109.LOG', 'XLOG110.LOG', 'XLOG92.LOG', 'XLOG93.LOG', 'XLOG94.LOG', 'XLOG95.LOG', 'XLOG96.LOG', 'XLOG97.LOG', 'XLOG98.LOG', 'XLOG99.LOG']
方法1:生成新的排序后列表
sorted_list = sorted(listOfFiles, key=lambda filename: int(filename[4:-4]), reverse=True)
方法2:直接在原列表上排序(不生成新列表)
listOfFiles.sort(key=lambda filename: int(filename[4:-4]), reverse=True)
逻辑说明
- 所有文件名都遵循
XLOGindex.LOG的固定格式,因此可以通过切片filename[4:-4]直接提取到索引的字符串值:跳过开头固定4个字符XLOG,去掉结尾固定4个字符.LOG - 把提取到的索引字符串转为整数作为排序依据,避免字符串排序的逻辑偏差(字符串排序中
'110'会小于'92',转为整数后就会按照数值大小正确排序) - 配置
reverse=True参数,实现按索引数值从大到小的倒序排列
运行后得到的结果和你预期的输出完全一致。
内容的提问来源于stack exchange,提问作者MrmDdda
相关产品推荐
相关产品推荐

