Listen Sie mit Python alle Dateien eines bestimmten Typs in einem Verzeichnis auf

WBOY
Freigeben: 2023-08-28 23:25:12
nach vorne
998 Leute haben es durchsucht

Listen Sie mit Python alle Dateien eines bestimmten Typs in einem Verzeichnis auf

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.

Einführung in die Os- und Glob-Bibliotheken von Python

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-ModulEin 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.

Beispiel 1: Verwendung von Os- und Fnmatch-Modulen

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')
Nach dem Login kopieren

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.

Beispiel 2: Verwendung des Glob-Moduls

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')
Nach dem Login kopieren

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.

Beispiel 3: Rekursive Suche mit dem Glob-Modul

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')
Nach dem Login kopieren

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.

Beispiel 4: Alle Python-Dateien auflisten

Sie können die Module os und fnmatch verwenden, um jede Python.py-Datei in einem bestimmten Verzeichnis mit -

zu finden und 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/my_python_projects', '*.py')
Nach dem Login kopieren

Dadurch werden die Namen aller .py-Dateien im Verzeichnis aufgelistet.

Beispiel 5: Rekursive Suche mit Os.walk

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')
Nach dem Login kopieren

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.

Fazit

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!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage