Rekursives Lesen von Ordnerinhalten in Python
In Python können Probleme auftreten, wenn Sie versuchen, Verzeichnisse rekursiv zu durchlaufen, um Textdateien zu lesen. Ein häufiges Problem ist Code, der nur für eine einzelne Verzeichnisebene funktioniert.
Die os.walk-Funktion verstehen
Der Kern der rekursiven Ordnerdurchquerung in Python liegt im Betriebssystem .walk()-Funktion. Es durchläuft ein angegebenes Verzeichnis und seine Unterverzeichnisse und gibt drei Werte zurück: Stammverzeichnis, Unterverzeichnisse und Dateien.
Ordnerdurchquerung optimieren
Um Verzeichnisse rekursiv zu durchqueren, müssen Sie sollte die von os.walk() zurückgegebene Liste der Unterverzeichnisse durchlaufen. Für jedes Unterverzeichnis können Sie dann os.walk() rekursiv aufrufen, um seinen Inhalt zu verarbeiten.
Verbesserter Python-Code
Der Beispielcode kann geändert werden, um mehrere Verzeichnisse zu verarbeiten Ebenen:
<code class="python">import os import sys walk_dir = sys.argv[1] for root, subdirs, files in os.walk(walk_dir): for subdir in subdirs: # Process subdirectory: call os.walk() recursively for subdir for sub_subdir, sub_subfiles, _ in os.walk(os.path.join(root, subdir)): # Process subdirectories and files in subdirectory</code>
Zusätzliche Best Practices
Das obige ist der detaillierte Inhalt vonWie lese ich Ordnerinhalte in Python mithilfe der Funktion os.walk() rekursiv?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!