Pythons flexible Funktionen und leistungsstarke Bibliotheken machen die Bearbeitung von Dateien und Verzeichnissen zum Kinderspiel. Mit Python können Sie Daten aus Dateien und Ordnern generieren, aktualisieren und abrufen. Eine typische Anforderung ist eine Verzeichnisauflistung aller Dateien eines bestimmten Typs. Dieses Tutorial führt Sie anhand von Beispielen aus der Praxis durch den Prozess, um Pythons Kompetenz in Dateisystemoperationen zu demonstrieren.
Die Standard-Python-Bibliothek verfügt über viele Module, die Dateisystemvorgänge verwalten können. Die Module os und glob sind zwei Beispiele für bekannte Module.
OS-Modul – Das Betriebssystemmodul von Python bietet Tools für die Kommunikation mit dem Betriebssystem. Es bietet Vorgänge zum Hinzufügen, Löschen und Durchsuchen von Verzeichnissen, was für Datei- und Verzeichnisvorgänge sehr nützlich ist.
Glob-Modul−Ein weiteres nützliches Tool ist das Glob-Modul, das die Regeln der Unix-Shell verwendet, um alle Pfadnamen zu finden, die einem bestimmten Muster entsprechen. Da es Platzhalterzeichen wie * und ? unterstützt, ist es perfekt für unsere Ziele.
Schauen wir uns die Beispiele genauer an, um ihre Verwendung besser zu verstehen.
Hier verwenden wir die Module os und fnmatch in Python, um jede in einem Verzeichnis vorhandene .txt-Datei aufzulisten.
import os import fnmatch def list_files(directory, filetype): for file in os.listdir(directory): if fnmatch.fnmatch(file, filetype): print(file) list_files('/home/user/documents', '*.txt')
Die Funktion os.listdir() in diesem Codeausschnitt zeigt eine Liste aller Dateien und Verzeichnisse im angegebenen Verzeichnis an. Die fnmatch()-Funktion des fnmatch-Moduls ermittelt dann, ob jede Datei dem angegebenen Dateitypmuster entspricht. Wenn die Dateitypen übereinstimmen, drucken Sie den Dateinamen aus.
Nun verwenden wir das Glob-Modul, um alle in einem Verzeichnis vorhandenen JPG-Bilddateien aufzulisten.
import glob def list_files(directory, filetype): for file in glob.glob(f"{directory}/{filetype}"): print(file) list_files('/home/user/images', '*.jpg')
Die Funktion glob.glob() wird in diesem Beispiel verwendet, um eine Liste von Pfaden zurückzugeben, die dem Pfadnamenmuster entsprechen. Der Verzeichnispfad und der Dateityp werden im f-String zusammengefasst. Die Funktion druckt dann die .jpg-Dateien im Verzeichnis aus.
Mit dem Glob-Modul können wir auch rekursiv nach bestimmten Dateitypen in einem Verzeichnis und seinen Unterverzeichnissen suchen. Suchen wir zum Beispiel nach der Bilddatei all.png.
import glob def list_files(directory, filetype): for file in glob.glob(f"{directory}/**/{filetype}", recursive=True): print(file) list_files('/home/user/images', '*.png')
Das ** in der Pfadzeichenfolge dieses Snippets weist glob an, eine rekursive Suche in allen Ordnern und Unterverzeichnissen durchzuführen. Die rekursive Funktionalität wird mit der Option recursive=True aktiviert.
Sie können die Module os und fnmatch verwenden, um jede Python.py-Datei in einem bestimmten Verzeichnis mit -
zu finden und aufzulistenimport os import fnmatch def list_files(directory, filetype): for file in os.listdir(directory): if fnmatch.fnmatch(file, filetype): print(file) list_files('/home/user/my_python_projects', '*.py')
Dadurch werden die Namen aller .py-Dateien im Verzeichnis aufgelistet.
Außerdem können wir os.walk() verwenden, um rekursive Suchen durchzuführen. Diese Funktion durchläuft den Verzeichnisbaum entweder von oben nach unten oder von unten nach oben, um Dateinamen zu erstellen.
import os import fnmatch def list_files(directory, filetype): for dirpath, dirnames, files in os.walk(directory): for file in files: if fnmatch.fnmatch(file, filetype): print(os.path.join(dirpath, file)) list_files('/home/user/projects', '*.txt')
Verwenden Sie die Funktion os.walk() in diesem Skript, um den Verzeichnisbaum zu durchlaufen. Verwenden Sie die Funktion fnmatch.fnmatch(), um jede Datei mit dem erforderlichen Dateityp zu vergleichen, und verwenden Sie os.path.join(), um den vollständigen Pfad der passenden Datei zu erhalten.
Viele Codierungsszenarien erfordern die Auflistung aller Dateien eines bestimmten Typs in einem Verzeichnis, und die umfangreiche Modulsammlung von Python (wie os und glob) bietet eine einfache Möglichkeit, dies zu erreichen. Die zahlreichen praktischen Beispiele in diesem Artikel machen deutlich, wie Sie mit diesen Modulen Dateien in einem Verzeichnis auflisten und rekursive Suchen innerhalb des Verzeichnisses und aller Unterverzeichnisse durchführen können.
Es ist unerlässlich, mit Dateien und Verzeichnissen in einer Programmier-Toolbox arbeiten zu können. Diese Funktionen eignen sich zum Organisieren von Projektdateien, zum Anzeigen von Protokolldateien und sogar zum Automatisieren von Systemfunktionen. Erkunden Sie diese Routinen weiter, um mehr über die leistungsstarken Dateisystemverwaltungsfunktionen von Python zu erfahren.
Das obige ist der detaillierte Inhalt vonListen Sie mit Python alle Dateien eines bestimmten Typs in einem Verzeichnis auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!