Сортировка буквенно-цифровых значений - PullRequest
0 голосов
/ 03 апреля 2019

Мне нужно отсортировать изображения по номерам в имени файла.

Например: [1.jpg, 10.jpg, 3.jpg ...]

Я устал от библиотеки natsort и отсортированных функций, оба дают одинаковый результат

import glob 
from natsort import natsorted
images =[]
for img in glob.glob('E:/train/image/*.jpg'):
    images.append(img)
    natsorted(images)

это выходы: [ 1, 10, 11, 12, 2, 22, 3 ]

но это должно быть: [ 1, 2, 3, 10, 11, 12, 22 * ​​1013 *]

Ответы [ 2 ]

0 голосов
/ 03 апреля 2019

natsorted не является сортировкой на месте.Он возвращает новый отсортированный список, поэтому вы должны присвоить его переменной.
Это должно работать:

import glob 
from natsort import natsorted
images =[]
for img in glob.glob('E:/train/image/*.jpg'):
    images.append(img)
images = natsorted(images)
0 голосов
/ 03 апреля 2019

Полагаю, вам нужно сделать следующее:

import glob 
from natsort import natsorted
images = natsorted(glob.glob('E:/train/image/*.jpg'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...