сортиране на списък с буквено-цифрови знаци като имена на файлове в поддиректория в python [затворено]

Опитвам се да работя с файлове, които трябва да се използват за обработка надолу по веригата. Файловете в структурата на поддиректориите и имената на файловете са донякъде като:

  • ./resources/json
    -pdfextract
    mylist = ['pdfextract
    ['pf1109__r_td6831__425_a_b_c.pdf.page33.pdf_testing_xml.json', 'pf1109__r_td6831__425_a_b_c.pdf.page4.pdf_testing_xml.json', 'pf1109__r_td6831__425_a_b_c.pdf.page41.pdf_testing_xml.json']
    
    pdf.json','pdfextract_3_pdf.json','pdfextract_1_pdf.json'] mylist.sort()
    pdf.json
    -pdfextract_4_pdf.json
    -pdfextract_3_pdf.json
    -pdfextract
    ['pf1109__r_td6831__425_a_b_c.pdf.page33.pdf_testing_xml.json', 'pf1109__r_td6831__425_a_b_c.pdf.page4.pdf_testing_xml.json', 'pf1109__r_td6831__425_a_b_c.pdf.page41.pdf_testing_xml.json']
    
    pdf.json

Когато просто се опитвам да сортирам само файловете в поддиректорията ./resources/json. Работи.

mylist = ['pdfextract
['pf1109__r_td6831__425_a_b_c.pdf.page33.pdf_testing_xml.json', 'pf1109__r_td6831__425_a_b_c.pdf.page4.pdf_testing_xml.json', 'pf1109__r_td6831__425_a_b_c.pdf.page41.pdf_testing_xml.json']
pdf.json','pdfextract_3_pdf.json','pdfextract_1_pdf.json'] mylist.sort()

Този изглежда не работи. Въпреки че всичко изглежда подобно (само низ)

['pf1109__r_td6831__425_a_b_c.pdf.page33.pdf_testing_xml.json', 'pf1109__r_td6831__425_a_b_c.pdf.page4.pdf_testing_xml.json', 'pf1109__r_td6831__425_a_b_c.pdf.page41.pdf_testing_xml.json']

person Betafish    schedule 07.08.2019    source източник
comment
Какво имаш предвид под неуспех? Защо смесвате / и \ разделители?   -  person    schedule 07.08.2019
comment
Работи добре в Python 2.7 и Python 3.5, 3.6   -  person Chris    schedule 07.08.2019
comment
Проблемът не може да се възпроизведе. Изпробвах го на python 3.7 и работи добре   -  person Arun A S    schedule 07.08.2019
comment
@ArunAS, вижте действителния пример (съжалявам, трябваше да създам пример за играчка).   -  person Betafish    schedule 07.08.2019
comment
Възможен дубликат на Как да сортирам списък с низове?   -  person darkman    schedule 07.08.2019
comment
От това, което разбрах, вие казвате, че не работи, защото страница 33 идва преди страница 4 във вашето сортиране. Мисля, че това е, което търсите Числено сортиране на списък от низове   -  person Arun A S    schedule 07.08.2019


Отговори (2)


sorted() работи перфектно в python3

>>> mylist = ['./resources/json\\pdfextract_2_pdf.json','./resources/json\\pdfextract_3_pdf.json','./resources/json\\pdfextract_1_pdf.json']
>>> print(sorted(mylist))
['./resources/json\\pdfextract_1_pdf.json', './resources/json\\pdfextract_2_pdf.json', './resources/json\\pdfextract_3_pdf.json']
person Gábor Erdős    schedule 07.08.2019
comment
Опитах го с примера по-долу. Изглежда не работи. ['pf1109__r_td6831__425_a_b_c.pdf.page33.pdf_testing_xml.json', 'pf1109__r_td6831__425_a_b_c.pdf.page4.pdf_testing_xml.json', 'pf1109__r_td6831__425_a_b_c.pdf.page41.pdf_testing_xml.json'] - person Betafish; 07.08.2019
comment
@Betafish Може да искате това: stackoverflow.com/questions/3426108/ - person Andrej Kesely; 07.08.2019

за низходящ ред

sorted(mylist , reverse = True)

и за възходящ ред просто използвайте

sorted(mylist , reverse = false)

or

sorted(mylist)
person Rajeev Shankhwar    schedule 07.08.2019