Python Glob:对[int] _ [int]格式的文件进行排序,与Windows名称sort

时间:2019-01-28 10:27:41

标签: python sorting glob

我有在Windows中按名称排序的文件,如下所示:

1_0
1_1
1_2
1_3
1_4
1_5
1_6
1_7
1_8
1_9
1_10
1_11
2_0
2_1

_之前的第一个整数上方应该是第一个排序,然后是_之后的整数。我想以相同的方式对glob进行排序。但是,当我使用sorted(glob.glob(files))时,我得到的订单如下:

1_1
1_10
1_11
1_12
1_13
1_14
1_15
1_16
1_17
1_18
1_19
1_2

对于上述格式的文件,是否有一种简单的方法可以像Windows一样通过名称进行glob排序?

1 个答案:

答案 0 :(得分:1)

您可以按相关顺序将多个键分配给排序功能

sorted(glob.glob(files), key=lambda x: (int(x.split('_')[0]), int(x.split('_')[1])))
  

['1_0','1_1','1_2','1_3','1_4','1_5','1_6','1_7','1_8','1_9','1_10','1_11 ','2_0','2_1']