In diesem Lernprogramm erfahren Sie, wie Sie ein kurzes Programm in Python implementieren , das sich innerhalb des übergebenen Verzeichnisses um die Suche nach Dateien kümmert, die einen bestimmten Namen enthalten (wenn wir kein Verzeichnis übergeben, wird vom aktuellen Verzeichnis aus gesucht). Wir werden sehen, dass es ein sehr einfacher Code ist, der auszuführen und zu verstehen ist.
Lassen Sie zuerst den vollständigen Code und unten wird Teil für Teil erklärt:
Import sys, os search = "solvetic" directory = os.getcwd () total = 0 if (len (sys.argv)> 1): if (nicht os.path.isdir (sys.argv [1])): print (sys.argv [1], "kann nicht als Verzeichnis erkannt werden") sys.exit (1) directory = sys.argv [1] Für root, dir, Dateien in os.walk (Verzeichnis): für Datei in Dateien: if (suche in file.lower ()): Drucken (Wurzel + "\" + Datei) total + = 1 drucken ("Insgesamt gibt es", insgesamt "Dateien mit", suchen)
Beginnen wir nun mit der Erklärung des Codes. Wenn Sie bereits etwas über Python wissen, haben Sie es zum größten Teil bereits verstanden.
Um dieses Programm auszuführen, verwenden wir das Modul os, um mit dem Betriebssystem zu interagieren, und das System, um die Eingabe des Arguments und die mögliche Ausgabe ohne plötzliche Verzögerung zu steuern. Es sind Module, die wir bereits in Python haben, so dass wir nichts anderes installieren müssen.
Import sys, os
Als nächstes definieren wir eine Variable namens search mit dem gesuchten Wort (wir könnten es als Parameter erhalten, aber in diesem Fall wird es als TechnoWikis bezeichnet), ein anderes genanntes Verzeichnis, das die Route enthält, von der aus wir beginnen werden (standardmäßig das aktuelles Verzeichnis, von dem aus wir das Programm ausführen). Und die letzte Variable, die wir insgesamt sehen, ist die Verfolgung der Dateien, die wir finden.
search = "solvetic" directory = os.getcwd () total = 0
Lassen Sie uns jetzt überprüfen, ob wir irgendwelche Parameter erhalten haben, und wenn ja, ob sie ein Verzeichnis übergeben haben, speichern wir das Verzeichnis in der Variablen “directory”, wenn diese Variable nicht dieselbe bleibt, dh mit dem aktuellen Verzeichnis.
if (len (sys.argv)> 1): if (nicht os.path.isdir (sys.argv [1])): print (sys.argv [1], "kann nicht als Verzeichnis erkannt werden") sys.exit (1) directory = sys.argv [1]
Der nächste Schritt ist eine Schleife, die Funktion os.walk (directory) liest die Namen der Dateien rekursiv, dh sie durchläuft die Dateien und Verzeichnisse aus dem Verzeichnis, das wir an sie übergeben. Das einzige, was uns in diesem Beispiel interessiert, ist die Anzeige der Dateien, die das Wort solvetic enthalten. Wir werden also die Dateien durchgehen und prüfen, ob sie das gesuchte Wort enthalten, um auch die Dateien zu finden, die das Wort mit einem Großbuchstaben enthalten. Wir verwenden die untere Funktion. Alles was es tut ist, die gesamte Kette in Kleinbuchstaben zu belassen. Da der vollständige Pfad der Datei angezeigt werden soll, verknüpfen wir die Variable root mit der Datei, da root das von uns gelesene Verzeichnis zurückgibt.
Für root, dir, Dateien in os.walk (Verzeichnis): für Datei in Dateien: if (suche in file.lower ()): Drucken (Wurzel + "\" + Datei) total + = 1
Kurz vor Programmende malen Sie einen Bildschirm mit der Anzahl der gefundenen Dateien mit dem Namen solvetic.
drucken ("Insgesamt gibt es", insgesamt "Dateien mit", suchen)
Jetzt werde ich ein paar Bilder von der Ausführung des Programms machen, neben der Ausführung ohne Parameter, das heißt, es wird die Suche aus dem aktuellen Verzeichnis heraus machen:
Folgendes, um von Datenträger C in Windows zu suchen:
Und schließlich ein Capture, wenn es als Parameter etwas übergibt, das kein Verzeichnis ist:
Und das Tutorial ist beendet, wenn Sie daran interessiert sind, das Modul weiter zu erforschen, hier ist ein Link zur offiziellen Dokumentation , es ist in Englisch.