Rekursives Lesen von Ordnerinhalten in Python
In Python können Probleme auftreten, wenn Sie versuchen, Verzeichnisse rekursiv zu durchsuchen, 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: Root, Unterverzeichnisse und Dateien.
Ordnerdurchquerung optimieren
Um Verzeichnisse rekursiv zu durchqueren, sollten Sie die Liste der von os.walk() zurückgegebenen 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:
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
Zusätzliche Best Practices
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3