„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie lese ich Ordnerinhalte in Python mithilfe der Funktion os.walk() rekursiv?

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

Veröffentlicht am 08.11.2024
Durchsuche:139

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 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.

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

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

  • Verwenden Sie os.path.join() für die Pfadverkettung anstelle der manuellen Zeichenfolgenmanipulation.
  • Erwägen Sie die Konvertierung von Skriptargumenten in absolute Pfade mithilfe von os.path.abspath() für Stabilität.
  • Verwenden Sie die with-Anweisung, um die Dateiverwaltung zu vereinfachen und eine automatische Bereinigung sicherzustellen.
Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729233616 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

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