Python glob: сортировка файлов в формате [int] _ [int] аналогично сортировке имен окон - PullRequest
0 голосов
/ 28 января 2019

У меня есть файлы, которые отсортированы по имени в окнах, как показано ниже:

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

1 Ответ

0 голосов
/ 28 января 2019

Вы можете присвоить функции сортировки несколько ключей в порядке релевантности.

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 ']

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...