Получение файлов из директории в правильном порядке | Python

Мне надо получить все файлы из папки с форматом docx. Делаю это так:

glob.glob("/home/adam/*docx")

Смысл в том, что мой файлы имею форматы названия Name 1.docx, Name 2.docx, Name 10.docx, Name 11.docx, Name 12.docx, Name 100.docx. Как я понял, любая подобная функция сортирует массив в зависимости от разряда чисел. Т.е., в примере выше мне выдаст не:

[
    'Name 100.docx',
    'Name 10.docx',
    'Name 11.docx',
    'Name 12.docx',
    'Name 1.docx',
]

Как мне отключить эту функцию? Я хочу получать список в том же порядке, как он отображется в винде: "Сортировка по имени. От меньшего к большему"


Ответы (1 шт):

Автор решения: MaxU

воспользуйтесь модулем natsort:

from natsort import natsorted  #  pip install natsort

files = [
    'Name 100.docx',
    'Name 10.docx',
    'Name 11.docx',
    'Name 12.docx',
    'Name 1.docx',
]

res = natsorted(files)

результат:

In [15]: res
Out[15]:
['Name 1.docx',
 'Name 10.docx',
 'Name 11.docx',
 'Name 12.docx',
 'Name 100.docx']
→ Ссылка