Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Python für Systemadministratoren Grundkurs

Verzeichnisstrukturen sortieren

Testen Sie unsere 2016 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Oft ist es notwendig, alle Dateien einer Verzeichnisstruktur nach einem vorgegebenen Kriterium zu sortieren. Mit der Funktion sorted(), die Sie flexibel parametrisieren können, ist das ein Kinderspiel.
05:14

Transkript

In dieser Lektion möchte ich Ihnen vorstellen, wie Sie Verzeichnisstrukturen komfortabel sortieren können. Mit der Funktion "sorted" können Sie Listen sortieren. Die Funktion "sorted" können Sie über zwei Parameter anpassen. Einerseits, welche Sortierreihenfolge Sie anwenden wollen, andererseits, ob Sie vorwärts oder rückwärts sortieren wollen. Hier sehen Sie drei einfache Anwendungsfälle. Durch "getFiles", bekomme ich alle Dateien aus meinem "Home". In diesem Fall "recursive-False", das heißt ich gehe nicht in die Unterverzeichnisse rein. Dann kann ich "sorted" auf "myFiles" anwenden. In diesem Fall lexikographisch aufsteigend, also so, wie es im Telefonbuch drinsteht. Durch "reverse=True" ist lexikographisch absteigend und wenn ich zum Beispiel "case insensitive" sortieren will kann ich eine spezielle Keyfunction angeben: "key-str.upper" in diesem Fall. Es geht aber noch mehr. Sie können die "sorted" Funktion auch über eine Lambda-Funktion parametrisieren. Ich habe hier drei Beispiele schon vorgestellt. Einmal können Sie zum Beispiel nach der Größe der Datei sortieren. Nach der User-ID der Datei oder nach dem Modifikationszeitpunkt der Datei. Zu dem Zwecke verwende ich immer "os.stat". Das will ich jetzt alles in der Anwendung zeigen. Und dann geht es schon wieder los. Den Python-Interpreter habe ich bereits aufgerufen und hier die Funktionalität importiert. Als Erstes brauche ich Dateien und in diesem Fall, schnappe ich mir alle Dateien in meinem "Home" unter Verzeichnis "schulung" Ich könnte jetzt "getFiles" noch weiter parametrisieren indem ich zum Beispiel sage: "recursive=False", das heißt nicht rekursiv oder indem ich zusätzliche Filter angebe. Mache ich aber in diesem Fall nicht, weil ich nicht so viele Dateien habe. Damit habe ich alle Dateien eingelesen und jetzt zeige ich es Ihnen mal: "for f in myFiles: print f" Sie sehen viele Dateien, einige C++ Dateien und hier oben kommen irgendwann die Python-Dateien. Hier sind sie. Ja, bisschen unordentlich, aber mit diesen Dateien will ich jetzt arbeiten. Was kann ich jetzt machen? Zum Beispiel kann ich "myFiles" sortieren. Dann habe ich natürlich "MyFilesSorted" und dann gebe ich es noch mal aus da muss ich natürlich "myFilesSorted" anwenden, größer und Sie sehen, jetzt sind sie sortiert jetzt ist Python unten und wenn Sie hochgehen, sehen Sie, hier geht es nach C++ und dann geht's hier weiter... Source, die ganzen Dateien sortiert. Ok. Ich kann es aber auch "reverse" sortieren. In diesem Fall mache ich es mir einfach und sortiere sie "in place". Sehen Sie? Ich wende hier auf "myFiles" direkt "reverse=True" an Ich kriege zurück eine Liste von Dateinamen, diese hier oben, aber eben umgekehrt sortiert. Und aus diesem Grund ist jetzt das C++ wieder unten. Was kann ich noch machen? Ich kann es "case-insensitive" sortieren. Wieder "in place". Und jetzt ist es sortiert, unabhängig von der Groß-und Kleinschreibung. Besonders interessant finde ich, wenn Sie sich die Datei-Attribute anschauen. Und zum Beispiel in diesen Fall, sortiere ich nach der Größe der Dateien. "st_size" Ausgeben sollte ich es natürlich auch: "for f in"..."print f". Das hier ist die größte Datei und nach oben wird es natürlich immer kleiner. Ich kann mir das auch sortieren lassen nach der UserID. Machen wir doch! "UserID" Jetzt habe ich sie nach der UserID sortiert. Nach "mtime", nach Modifikationszeit. Da muss ich natürlich wieder die richtige "for file" in "myFilesModTime: print f" und Sie sehen, diese Datei habe ich als letztes editiert. In dieser Lektion habe ich Ihnen gezeigt, wie Sie Dateien sehr komfortabel mit Hilfe der "Sorted"-Funktion sortieren können. Von daher ist die "Sorted"-Funktion idealer Gegenpart zu der Funktion "getFiles", die ich Ihnen bereits vorgestellt habe. Mit "getFiles" erhalten Sie die Liste der Dateien, die Sie interessiert. Und mit "sorted" verarbeiten Sie sie weiter.

Python für Systemadministratoren Grundkurs

Lernen Sie die zahlreichen Funktionen der Kernsprache und die wichtisgten Bibliotheken für den Administrationsalltag kennen.

1 Std. 53 min (22 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:10.03.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!