Suchen Sie mit Python nach Namensdateien auf Ihrer Festplatte

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.

Hinweis
Das Beispiel, das ich in dieses Tutorial einfügen werde, wird in Python 3.X ausgeführt.

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:

See also  Archivieren / Archivieren von Google Mail-E-Mails auf PC und Android- oder iPhone-Handys

search_solvetic_1.jpg

Folgendes, um von Datenträger C in Windows zu suchen:

search_solvetic_2.jpg

Und schließlich ein Capture, wenn es als Parameter etwas übergibt, das kein Verzeichnis ist:

no_directorio.jpg

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.

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *