Das rekursive Durchlaufen von Verzeichnisstrukturen zum Auflisten aller Dateien ist eine häufige Programmieranforderung. Lassen Sie uns in diesem Zusammenhang untersuchen, wie Sie dies in Python effizient erreichen können.
Ein Ansatz ist die Verwendung der Methode pathlib.Path().rglob(), die in Python 3.5 eingeführt wurde. Es bietet eine bequeme Möglichkeit, alle Dateien zu identifizieren, die einem bestimmten Muster in einem Verzeichnis und seinen Unterverzeichnissen entsprechen:
from pathlib import Path for path in Path('src').rglob('*.c'): print(path.name)
Wenn Sie lieber das Glob-Modul verwenden, können Sie dessen glob()-Funktion mit recursive=True nutzen Argument:
from glob import glob for filename in glob('src/**/*.c', recursive=True): print(filename)
Eine weitere Option, die mit älteren Python-Versionen kompatibel ist, beinhaltet die Verwendung von os.walk() für rekursive Durchquerung und fnmatch.filter() für Mustervergleich:
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))
Die os.walk()-Technik kann sich in Szenarien mit umfangreichen Dateizahlen aufgrund des geringeren Overheads im Zusammenhang mit dem Pathlib-Modul als schneller erweisen.
Welchen Ansatz Sie auch wählen, Diese Methoden werden Ihnen effektiv dabei helfen, Dateien in einem bestimmten Verzeichnis und seinen Unterordnern rekursiv zu identifizieren und aufzulisten.
Das obige ist der detaillierte Inhalt vonWie kann ich mit Python alle Dateien in einem Verzeichnis rekursiv auflisten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!