Dateien aus dem Verzeichnis werden in falscher Reihenfolge mit Python gezogen [duplizieren]

9

Ich bearbeite eine tkinter-Listbox mit Dateien aus einem Verzeichnis. Die Namen der Dateien beginnen alle mit einer Nummer von 01 - n. Wenn ich die Dateien im Verzeichnis anzeige, erscheinen sie in numerischer Reihenfolge. Wenn ich die Dateien jedoch in eine Listbox lade, sind sie nicht numerisch geordnet. Ich kann die führenden Zahlen ändern, aber die gleichen Dateien erscheinen immer an der gleichen Stelle.

Ich verwende nur vereinfachte Elementnamen, um die Dinge in diesem Beispiel einfach zu halten. Es zeigt immer noch, dass sie nicht alphabetisch oder numerisch sortiert sind.

Die Liste sollte wie folgt in meiner Listbox erscheinen

%Vor%

Aber es erscheint als:

%Vor%

Ich kann die führenden Zahlen ändern, aber die Dateien werden immer in der gleichen Reihenfolge (nach Name, nicht nach Nummer) eingefügt. Das Merkwürdige ist, dass es nicht einmal alphabetisch geordnet ist.

Ich habe das benutzt

%Vor%

Und das

%Vor%

Beide ergeben dasselbe.

    
user1104854 29.10.2012, 12:50
quelle

2 Antworten

17

os.listdir garantiert keine Reihenfolge der Inhalte eines Verzeichnisses . Wenn die Elemente sortiert werden sollen, sortieren Sie sie einfach mit der integrierten Funktion sorted (ggf. mit einer entsprechenden Funktion key ).

    
mgilson 29.10.2012, 12:55
quelle
10

Versuchen Sie es.

%Vor%

Falls die Nummer Teil des Dateinamens ist, gehen Sie mit @ FabienAndres Kommentar.

%Vor%     
John 29.10.2012 12:57
quelle

Tags und Links