Получение файлов из директории в правильном порядке | 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']