#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()
.