Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich Dateien in Python rekursiv finden?

Wie kann ich Dateien in Python rekursiv finden?

Linda Hamilton
Linda HamiltonOriginal
2024-12-12 20:21:17614Durchsuche

How Can I Recursively Find Files in Python?

Rekursives Suchen von Dateien mit Python

In Python können Sie alle Dateien in einem Verzeichnis und seinen Unterverzeichnissen effektiv rekursiv abrufen und so eine umfassende Dateisuche ermöglichen Erkundung.

Eine Methode beinhaltet die Verwendung von pathlib.Path().rglob(). Bei Verzeichnissen mit einer Tiefe von mehr als einer Ebene ruft dieser Ansatz effektiv alle passenden Dateien ab. Der folgende Codeausschnitt demonstriert beispielsweise seine Anwendung:

from pathlib import Path

for path in Path('src').rglob('*.c'):
    print(path.name)

Alternativ kann die Funktion glob.glob() in Verbindung mit dem Argument recursive=True für die rekursive Dateisuche verwendet werden:

from glob import glob

for filename in glob('src/**/*.c', recursive=True):
    print(filename) 

Für Szenarien, in denen Dateien, die mit einem Punkt beginnen (z. B. versteckte Dateien), jedoch eingeschlossen werden müssen, bietet os.walk() dies an eine praktikable Lösung:

import fnmatch
import os

matches = []
for root, dirnames, filenames in os.walk('src'):
    for filename in fnmatch.filter(filenames, '*.c'):
        matches.append(os.path.join(root, filename))

Mit diesen Methoden können Sie effizient durch Verzeichnisstrukturen navigieren und Dateien gemäß Ihren festgelegten Kriterien abrufen. Unabhängig davon, ob Ihre Dateien tief verschachtelt sind oder versteckte Elemente enthalten, bietet Python robuste Tools für Ihre Dateierkennungsanforderungen.

Das obige ist der detaillierte Inhalt vonWie kann ich Dateien in Python rekursiv finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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