У меня есть папка, где у меня есть имена, какPython сортировки файлов в папке ошибок
file_1.txt,file_2.txt,file_3.txt,file_10.txt,file_100.txt.
Я читал эти файлы с помощью os.walk.i нужны имена печати файлов в отсортированный код order.My как следующим образом:
import os
import fnmatch
rootDir = "lecture1"
for root, dirs, files in os.walk(rootDir):
files = sorted(files)
for file in fnmatch.filter(files, '*.wav'):
print os.path.join(rootDir, file)
Но приведенный выше код не печатает файл в отсортированном order.Please предложить мне путь, так что я могу напечатать в отсортированном порядке, следующим образом:
file_1.txt,file_2.txt,file3_txt,file_10.txt,file_100.txt
В настоящее время его печать
file_1.txt,file_1.txt,file_100.txt,file_2.txt,file_3.txt
Это ответили здесь: http://stackoverflow.com/questions/4836710/does-python-have-a-built-in-function-for-string-natural- Сортировать . В основном «сортировка» - это алгоритм сортировки по алфавиту, и вы хотите естественную сортировку, чтобы получить больше работы для этого. Либо вам нужно будет использовать модуль 're', либо написать функцию для сортировки или использовать библиотеку сторонней сортировки' natsort', как описано в этой ссылке. – dopstar
related: [Python analog of natsort function (сортировать список, используя алгоритм «естественного порядка»)] (http://stackoverflow.com/q/2545532/4279) – jfs