In diesem Tutorial werden wir sehen wie man ein kurzes Python-Programm implementiert, das sich um die Suche nach Dateien kümmert, die einen bestimmten Namen enthalten, innerhalb des Verzeichnisses, das wir ihm übergeben (wenn wir ihm kein Verzeichnis übergeben, wird im aktuellen Verzeichnis gesucht). Wir werden sehen, dass es sich um einen sehr einfachen Code handelt, der erstellt und verstanden werden kann.
NotizDas Beispiel, das ich in dieses Tutorial einfügen werde, werde ich in Python 3.X ausführen.
Zuerst lasse ich den kompletten Code und unten wird er Stück für Stück erklärt:
import sys, os search = "solvetic" directory = os.getcwd () total = 0 if (len (sys.argv)> 1): if (not os.path.isdir (sys.argv [1])): print (sys.argv [1], "nicht als Verzeichnis erkannt") sys.exit (1) Verzeichnis = sys.argv [1] für root, dir, files in os.walk (directory): für file in files: if ( Suche in file.lower ()): print (root + "\" + file) total + = 1 print ("Insgesamt gibt es", total, "Dateien mit", Suche)Jetzt beginnen wir mit der Erklärung des Codes, wenn Sie bereits etwas über Python wissen, haben Sie es sicherlich bereits zum größten Teil verstanden.
Zur Durchführung dieses Programms verwenden wir die os-Modul mit dem Betriebssystem zu interagieren, und die sys um die Eingabe des Arguments und den möglichen Austritt ohne Abrupte zu kontrollieren. Es sind Module, die wir bereits in Python haben, also müssen wir nichts anderes installieren.
import sys, osAls nächstes definieren wir eine Variable namens search mit dem zu suchenden Wort (wir könnten es als Parameter erhalten, aber in diesem Fall wird es für das Beispiel solvet sein), ein weiteres aufgerufenes Verzeichnis, das den Pfad enthält von wo aus wir starten werden (standardmäßig das aktuelle Verzeichnis, in dem wir das Programm ausführen). Und die letzte Variable, die wir insgesamt sehen, besteht darin, die gefundenen Dateien zu verfolgen.
search = "solvetic"-Verzeichnis = os.getcwd () total = 0Jetzt prüfen wir, ob wir irgendwelche Parameter erhalten haben und wenn ja, prüfen wir, ob sie uns ein Verzeichnis gegeben haben, wenn es wahr ist, speichern wir das Verzeichnis in der Variablen "Verzeichnis", wenn nicht, bleibt diese Variable gleich, dh mit dem aktuellen Verzeichnis.
if (len (sys.argv)> 1): if (not os.path.isdir (sys.argv [1])): print (sys.argv [1], "nicht als Verzeichnis erkannt") sys.exit ( 1) Verzeichnis = sys.argv [1]Der nächste Schritt ist eine Schleife, die Funktion os.walk (Verzeichnis) liest die Namen der Dateien rekursiv, dh sie durchläuft die Dateien und Verzeichnisse aus dem Verzeichnis, das wir ihr übergeben. Das einzige, was uns in diesem Beispiel interessiert, ist, die Dateien anzuzeigen, die das Wort solvtic enthalten. Wir gehen die Dateien durch 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 Lower-Funktion, die nur den gesamten String in Kleinbuchstaben belässt. Da wir daran interessiert sind, den vollständigen Pfad der Datei zu sehen, verketten wir die Root-Variable mit der Datei, da root das gelesene Verzeichnis zurückgibt.
für root, dir, files in os.walk (directory): für file in files: if (search in file.lower()): print (root + "\" + file) total + = 1Unmittelbar vor dem Beenden des Programms wird auf dem Bildschirm eine Zeile mit der Anzahl der gefundenen Dateien mit dem Namen „solvtic“ angezeigt.
drucken ("Insgesamt gibt es", insgesamt, "Dateien mit", suchen)Jetzt werde ich einige Screenshots der Ausführung des Programms einfügen, dann die Ausführung ohne Parameter, dh es wird die Suche aus dem aktuellen Verzeichnis durchgeführt:
Folgendes für die Suche von Datenträger C in Windows:
Und schließlich ein Capture, wenn etwas, das kein Verzeichnis ist, als Parameter übergeben wird:
Und das Tutorial ist vorbei, wenn Sie daran interessiert sind, das Modul weiter zu untersuchen, hier ist ein Link zur offiziellen Dokumentation, sie ist auf Englisch.
Hat dir dieses Tutorial gefallen und geholfen?Sie können den Autor belohnen, indem Sie diesen Knopf drücken, um ihm einen positiven Punkt zu geben