Сортировка буквенно-цифровых списков по определению символов (python)

#python #sorting

#python #сортировка

Вопрос:

Я создаю программу, которая способна открывать zip-файл и выводить имена файлов в алфавитно-цифровом порядке. Вот мой код:

 import zipfile
import re

zip_file = zipfile.ZipFile('/home/aaaa/exploit/example.zip','r')
  for name in zip_file.namelist():
  sorted(str(name in zip_file.namelist()))
    print(name)

zip_file.close()
  

И вот результат:

 example/
example/txt2.txt
example/txt3.txt
example/txt1.txt
  

Я бы хотел, чтобы name в zip_file.namelist() было организовано как таковое:

 example/
example/txt1.txt
example/txt2.txt
example/txt3.txt
  

но я не очень уверен, как сортировать подобные буквенно-цифровые строки только по номеру.

Ответ №1:

Вы не сортируете список до того, как пройдете по ним цикл. Попробуйте это:

 for name in sorted(zip_file.namelist()):
    print(name)
  

Комментарии:

1. p e r f e c t t y

Ответ №2:

namelist указывает на внутренний объектный список файлов. Вы можете попробовать отсортировать выходные данные: sorted(zip_file.namelist()) или вместо этого вы можете коснуться внутреннего объекта zip_file.filelist.sort() .