Das Durchlaufen eines Verzeichnisbaums
os.walk(top, topdown=True, onerror=None, followlinks=False)
ist eine Funktion aus dem os
-Modul in Python, die die Dateinamen in einem Verzeichnisbaum generiert, indem sie den Baum entweder von oben nach unten oder von unten nach oben durchläuft. Standardmäßig generiert os.walk()
die Dateinamen in einem Verzeichnisbaum von oben nach unten. Für jedes Verzeichnis im Baum, der am Verzeichnis top
(einschließlich top
selbst) verwurzelt ist, liefert es ein 3-Tupel (dirpath, dirnames, filenames).
Hier ist ein Beispiel dafür, wie Sie os.walk()
verwenden können, um alle Dateien in einem Verzeichnis und seinen Unterverzeichnissen auszugeben:
import os
## Drucken Sie alle Dateien in einem Verzeichnis und seinen Unterverzeichnissen
for root, dirs, files in os.walk('.'):
for file in files:
print(os.path.join(root, file))
Dieser Code beginnt im aktuellen Verzeichnis (angegeben durch '.') und läuft rekursiv durch alle Unterverzeichnisse, gibt dabei den vollständigen Pfad jeder Datei aus, die er findet.
Hier ist ein weiteres Beispiel, in dem Sie os.walk()
verwenden können, um nach einer bestimmten Datei mit einer bestimmten Erweiterung in einem Verzeichnis zu suchen:
import os
def search_file(directory, file_extension):
for root, dirs, files in os.walk(directory):
for file in files:
if file.endswith(file_extension):
print(os.path.join(root, file))
search_file('.','.txt')
Dies wird alle Dateien mit der Erweiterung '.txt' suchen und den vollständigen Pfad der Datei ausgeben.
os.walk()
ist eine leistungsstarke Funktion, die für viele Aufgaben verwendet werden kann, wie das Suchen nach Dateien, die Analyse von Verzeichnisstrukturen und vieles mehr.
Es ist zu beachten, dass os.walk
ein Generator ist, was bedeutet, dass es die Werte im Laufe der Zeit generiert, anstatt sie alle im Speicher zu behalten. Dies macht es effizient für die Behandlung großer Verzeichnisbäume.