У меня есть список имен файлов, которые мне нужно отсортировать по разделу в строке. Однако это работает только в том случае, если я сделаю расширение файла частью моего словаря сортировки. Я хочу, чтобы это работало, если файл имеет формат .jpg или .png, поэтому я пытаюсь разделить как «_», так и «.». персонаж.
sorting = ['FRONT', 'BACK', 'LEFT', 'RIGHT', 'INGREDIENTS', 'INSTRUCTIONS', 'INFO', 'NUTRITION', 'PRODUCT']
filelist = ['3006345_2234661_ENG_PRODUCT.jpg', '3006345_2234661_ENG_FRONT.jpg', '3006345_2234661_ENG_LEFT.jpg', '3006345_2234661_ENG_RIGHT.jpg', '3006345_2234661_ENG_BACK.jpg', '3006345_2234661_ENG_INGREDIENTS.jpg', '3006345_2234661_ENG_NUTRITION.jpg', '3006345_2234661_ENG_INSTRUCTIONS.jpg', '3006345_2234661_ENG_INFO.jpg']
sort = sorted(filelist, key = lambda x : sorting.index(x.re.split('_|.')[3]))
print(sort)
Это возвращает ошибку «AttributeError: объект« str »не имеет атрибута« re »».
Что мне нужно сделать, чтобы разделить как на _, так и на . при разделении моих строк для сортировки? Я хочу использовать разделение только для сортировки, а не для переформирования строк.
x.split
вместоx.re.split
- person malmiteria   schedule 15.02.2020re.split
принимает первый аргумент в качестве регулярного выражения, а второй - в качестве входных данных, поэтому ваш синтаксис должен быть примерно таким, какre.split('_|.', x)[3]
, как указано в комментарии ниже. - person Guven Degirmenci   schedule 15.02.2020