Wie kann ich mit Python effizient nach Dateien in mehreren Verzeichnissen suchen?

Linda Hamilton
Freigeben: 2024-10-29 02:35:29
Original
912 Leute haben es durchsucht

How can I use Python to efficiently search for files across multiple directories?

Eine Datei in Python finden

Das Suchen von Dateien in Python kann eine Herausforderung sein, wenn der Speicherort der Datei auf verschiedenen Systemen unterschiedlich ist. Glücklicherweise bietet Python das Modul os.walk, mit dem Sie mühelos Verzeichnisse durchsuchen und Dateien finden können.

os.walk für die Dateisuche

os.walk erstellt einen Generator Objekt, das ein Verzeichnis und seine Unterverzeichnisse durchläuft und für jede Iteration drei Tupel ergibt:

  • root (str): Absoluter Pfad zum aktuellen Verzeichnis
  • dirs (list): Liste von Unterverzeichnisse im aktuellen Verzeichnis
  • Dateien (Liste): Liste der Dateien im aktuellen Verzeichnis

Eine einzelne Datei suchen

Zu finden Beim ersten Vorkommen einer bestimmten Datei iterieren Sie einfach über die erhaltenen Tupel und prüfen, ob der Dateiname in der Liste der Dateien enthalten ist:

<code class="python">import os

def find(name, path):
    for root, dirs, files in os.walk(path):
        if name in files:
            return os.path.join(root, name)</code>
Nach dem Login kopieren

Alle Vorkommen einer Datei finden

Um alle Vorkommen einer Datei zu finden, erstellen Sie eine Liste zum Speichern der Übereinstimmungen:

<code class="python">def find_all(name, path):
    result = []
    for root, dirs, files in os.walk(path):
        if name in files:
            result.append(os.path.join(root, name))
    return result</code>
Nach dem Login kopieren

Übereinstimmende Dateimuster

Um nach übereinstimmenden Dateien zu suchen Um ein Muster zu erstellen, verwenden Sie das fnmatch-Modul:

<code class="python">import os, fnmatch
def find(pattern, path):
    result = []
    for root, dirs, files in os.walk(path):
        for name in files:
            if fnmatch.fnmatch(name, pattern):
                result.append(os.path.join(root, name))
    return result

find('*.txt', '/path/to/dir')</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich mit Python effizient nach Dateien in mehreren Verzeichnissen suchen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage