Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Python für Systemadministratoren Grundkurs

Verzeichnisstrukturen filtern

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Dank Pythons leistungsfähiger Funktionen ist es leicht möglich, ganze Verzeichnisstrukturen nach vorgegebenen Kriterien zu filtern, d.h. etwa alle Konfigurationsdateien, alle versteckten Dateien und alle Python-Files aus Ihrem Home-Directory ausgeben zu lassen.
05:55

Transkript

In dieser Lektion will ich Ihnen zeigen, wie Sie komfortabel ganze Verzeichnisstrukturen filtern können. Was meine ich mit komfortabel? Sie können das rekursiv und nicht-rekursiv machen, Sie können einen, keinen oder auch mehrere Filter anwenden. Ich werde Ihnen zeigen, wie Sie mithilfe von der Funktion "getFiles" alle Dateien unter "/etc" zurückbekommen, die auf ".conf" enden. Das heißt, Konfigurationsdateien. Oder alle Punkt-Dateien in Ihrem HOME. In diesem Fall verwende ich den Filter nicht-rekursiv, darum habe ich hier "false" eingegeben. Und zum Abschluss zeige ich Ihnen noch, wie Sie alle Python-Dateien unterhalb Ihres Heimatverzeichnisses erhalten können, die auf "*.py", "*.pyc" oder "*.pyo" enden. Also "*.py", "*.pyc" Python kompiliert und Python optimiert und kompiliert. Das Arbeitspferd in dieser Lektion ist die Funktion "getFiles", und die will ich Ihnen hier zeigen. "getFiles" erwartet in "dir", "patterns" und "recursive". Was heißt "dir"? Ab dieser Stelle filtert "getFiles" alle Dateien. Es wendet Patterns an, bei Default ist das der Asterisk, bedeutet, alle Files werden ausgegeben, und es geht bei Default recursive vor, außer Sie geben hier "false" an. Wie funktioniert das Ganze? Als Erstes splitte ich das Patterns, ein Leerzeichen, bekomme sozusagen alle Patterns. Dann mit "retValue" bereite ich den Return-Wert vor, in diesem Fall ist es eine Liste. Und hier kommt dann das Arbeitspferd zum Einsatz, "os.walk". "os.walk" mit dem Argument "dir" iteriert startend bei "dir" durch alle Unterverzeichnisse von "dir", und gibt für jedes Unterverzeichnis drei Dinge raus. "path", wo ist es gerade bei seiner Iteration. "dirs", alle Unterverzeichnisse und "files", alle Dateien in diesem Verzeichnis. Und für die Dateien interessiere ich mich hier noch genauer. Ich gehe durch alle Dateien durch, schaue, ob die Datei einem dieser Pattern entspricht, wenn ja, hänge ich die Datei als Return-Wert an die Liste "retValue" an. In dem ich den Pfad mit den Filenamen zusammen joine. Das heißt, im Endeffekt habe ich dann den absoluten Wert zu der Datei. Da es natürlich passieren kann, dass ein File mehreren Pattern entspricht, muss ich hier ein "break" aufrufen. Sonst habe ich eventuell eine Datei mehrmals im Ergebnis drin, und das will natürlich nicht haben. Hier noch eine Besonderheit. Falls ich "recursive" gleich "false" angebe, fliege ich hier aus dieser Iteration heraus, bedeutet natürlich, ich gehe nicht-rekursiv vor. Die Ganze Theorie will ich Ihnen jetzt noch in der Praxis zeigen. Und los geht's. Zuerst importiere ich die Funktion "getFiles". Damit habe ich sie. Dann rufe ich "getFiles" mit dem Argument "/etc/" auf. Und mit dem Pattern "*.conf". Und "*.conf" liefert mir alle Dateien, die auf "*.conf" enden. Und da kann ich jetzt mal schauen, wieviele sind es, weiß ich gerade selber nicht. "287". Und jetzt kann ich mir all diese Dateien noch anschauen. "for f in allConf : print f" Oh, das gefällt mir nicht. Ich mache nur einen Zeilenumbruch rein, indem ich das Komma hier wegnehme, und so schaut es schon schöner aus. Und nun sehen Sie, das sind alle Konfigurationsdateien, die ich habe. Eben 287, wenn ich es richtig im Kopf habe. Jetzt interessiert mich noch, welche Punkt-Dateien habe ich in meinem HOME. Punkt-Dateien sind typischerweise Konfigurationsdateien für z. B. Depeche oder Eclipse oder irgendwelche anderen Tools. Das führe ich aus. Und dann iterire ich auch noch mal drüber. In diesem Fall mache ich es mir einfach und schreibe einfach "allDot", und Sie sehen, z. B. "bashrc.backup" genau, "less" "bashrc", "bash_history", damit die Bash eben eine History hat und ich all die Befehle wieder aufrufen kann. ".emacs" Das sind die Punkt-Dateien. Und zum Schluss noch, interessieren mich alle Dateien in meinem HOME. Ich hoffe, dass es nicht zu lange dauert, die auf "*.py", "*.pyc" oder "*.pyo" enden. Das dauert ein bisschen. So. Dann schauen wir mal, wieviele das sind. Ich habe den Verdacht, es sind relativ viele. Ja. "843". Es geht noch einigermaßen. Also "allPy". Die Pfade sind relativ lang. .... Hier ".pyc". Also lauter Python-Dateien, die ich in meinem Home liegen habe. Ich kann aber z. B. hier auch Dateien mit der Tilde "~" suchen. Und weitere Pattern anwenden. Ich habe hier bewusst immer ein Pattern verwendet. Hier sieht man es ganz schön. Hier sehen Sie, ich habe ein Pattern verwendet, um nicht zu viele Treffer zu haben. Sonst habe ich eben zu viele Treffer. In dieser Lektion habe ich Ihnen gezeigt, wie Sie komfortabel ganze Verzeichnisstrukturen nach Dateien filtern können, die Ihren Kriterium entsprechen. Filtern können Sie rekursiv und nicht-rekursiv, mit keinem, einem oder mehreren Filtern.

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!