Sto compilando una casella di riepilogo tkinter con file da una directory. I nomi dei file iniziano tutti con un numero compreso tra 01 e n. Quando visualizzo i file nella directory, vengono visualizzati in ordine numerico. Tuttavia, quando carico i file in una listbox non vengono ordinati numericamente. Posso cambiare i numeri principali, ma gli stessi file appariranno sempre nello stesso punto.I file dalla directory vengono estratti in ordine errato con python
Sto usando solo nomi di articoli semplificati per mantenere le cose semplici con questo esempio. Mostra ancora che non vengono ordinati alfabeticamente o numericamente.
La lista dovrebbe apparire come il seguente nella mia casella di riepilogo
01. itemA
02. itemB
03. itemC
04. itemD
Ma sembra come:
01. itemA
04. itemD
02. itemB
03. itemC
posso cambiare i numeri principali intorno, ma i file saranno sempre popolare nella stessa ordine (per nome, non numero). La cosa strana è che non è nemmeno in ordine alfabetico.
Ho usato questo
i = 0
for filename in os.listdir(directory):
fileList.insert(i, filename)
i = i + 1
E questo
for filename in os.listdir(directory):
fileList.insert(END, filename)
Sia risultato nella stessa cosa.
Il docs dice [ "L'elenco è in ordine arbitrario."] (Http://docs.python.org/2/library/os.html#os.listdir)! Forse è la data di modifica? hai approfondito altre possibilità? –
si potrebbe provare 'per nome file in ordine (os.listdir (directory)):' http://docs.python.org/2/library/functions.html#sorted – FabienAndre
@FabienAndre ha funzionato perfettamente, grazie – user1104854