Heim  >  Artikel  >  Backend-Entwicklung  >  Wie lese ich Ordnerinhalte in Python mithilfe der Funktion os.walk() rekursiv?

Wie lese ich Ordnerinhalte in Python mithilfe der Funktion os.walk() rekursiv?

Susan Sarandon
Susan SarandonOriginal
2024-10-18 14:42:30968Durchsuche

How to Recursively Read Folder Contents in Python Using the os.walk() Function?

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.

  • Stammverzeichnis: Das aktuelle Verzeichnis, das verarbeitet wird.
  • Unterverzeichnisse: Verzeichnisse innerhalb des aktuellen Verzeichnis.
  • Dateien: Dateien (keine Verzeichnisse) im aktuellen Verzeichnis.

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

  • Verwenden Sie os.path.join() für die Pfadverkettung anstelle der manuellen Zeichenfolgenmanipulation.
  • Erwägen Sie aus Stabilitätsgründen die Konvertierung von Skriptargumenten in absolute Pfade mit os.path.abspath().
  • Verwenden Sie die with-Anweisung, um die Dateiverwaltung zu vereinfachen und eine automatische Bereinigung sicherzustellen.

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!

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