Po pierwsze, os.walk()
nie określa kolejności, w jakiej katalogi są zwracane, więc gdybym był tobą, nie powoływałbym się na kolejność alfabetyczną.
Mimo, że można wybrać kolejność, w jakiej podkatalogi pokonywane są przez pozostawiając topdown
zestaw na wartość domyślną (True
), a następnie sortowania dirs
na miejscu:
import os
top='/home/aix'
for root, dirs, files in os.walk(top, topdown=True):
print root
dirs.sort(reverse=True)
To będzie zrobić os.walk()
przechodzenie przez podkatalogi w odwrotnej kolejności leksykograficznej ich nazw.
documentation wyjaśnia, jak to działa:
Kiedy topdown
jest True
, dzwoniący może modyfikować listę dirnames w miejscu (być może przy użyciu del
lub powierzenie slice) i walk()
będzie tylko recurse do podkatalogów, których imiona pozostają w dirnames
; może to służyć do przycinania wyszukiwania, narzucania określonej kolejności odwiedzin, a nawet informowania o katalogach, które wywołujący tworzy lub zmienia, zanim ponownie odtworzy się.
Dlaczego musisz to zrobić? –
ponieważ pracuję nad bardzo dużym zbiorem katalogów, które są w porządku liczbowym i chcę najpierw zobaczyć najwyższe liczby. – jdborg