Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich mit „pathlib', „glob' und „os.walk' rekursiv Dateien in Python finden?

Wie kann ich mit „pathlib', „glob' und „os.walk' rekursiv Dateien in Python finden?

DDD
DDDOriginal
2024-12-11 20:16:15311Durchsuche

How Can I Recursively Find Files in Python Using `pathlib`, `glob`, and `os.walk`?

Rekursives Suchen von Dateien: Erkunden von pathlib.rglob(), glob.glob() und os.walk()

Beim Umgang mit Bei komplexen Verzeichnisstrukturen ist es unerlässlich, Dateien rekursiv zu finden. Diese Aufgabe kann mithilfe verschiedener Python-Module und -Methoden vereinfacht werden.

Ein Ansatz besteht darin, pathlib.Path().rglob() zu verwenden, das in Python 3.5 eingeführt wurde. Es ermöglicht eine einfache rekursive Dateisuche:

from pathlib import Path

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

Alternativ bietet glob.glob() eine weitere Option für die rekursive Dateiauflistung:

from glob import glob

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

Diese Methode ebenfalls unterstützt passende Dateien, die mit einem Punkt (.) beginnen.

Für ältere Python-Versionen oder wenn Geschwindigkeit entscheidend ist, os.walk() bietet eine zuverlässige 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))

Durch Auswahl der geeigneten Methode basierend auf Ihrer Python-Version und Ihren Leistungsanforderungen können Sie Dateien effektiv rekursiv in Verzeichnissen und Unterverzeichnissen auflisten.

Das obige ist der detaillierte Inhalt vonWie kann ich mit „pathlib', „glob' und „os.walk' rekursiv Dateien in Python 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