„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 kann ich „os.walk()“ verwenden, um eine strukturierte Verzeichnisliste mit Tiefenindikatoren in Python zu erstellen?

Wie kann ich „os.walk()“ verwenden, um eine strukturierte Verzeichnisliste mit Tiefenindikatoren in Python zu erstellen?

Veröffentlicht am 09.11.2024
Durchsuche:634

How can I use `os.walk()` to create a structured directory listing with depth indicators in Python?

Rekursives Navigieren in Verzeichnissen mit os.walk() in Python

Auf der Suche nach strukturierteren Verzeichnislisten versuchte ein Entwickler, seinen Code zu ändern um Verzeichnisse als großgeschriebene Titel mit gestrichelten Linien anzuzeigen, die die Tiefe und die Dateien darunter anzeigen. Ihr erster Ansatz führte jedoch zu unvollständigen Ergebnissen.

Um dieser Herausforderung zu begegnen, können wir das os.sep-Attribut von Python verwenden, um die Pfadkomponenten korrekt abzugrenzen. Hier ist eine verbesserte Lösung:

#!/usr/bin/python
import os

# traverse root directory, and list directories as dirs and files as files
for root, dirs, files in os.walk("."):
    path = root.split(os.sep)
    print((len(path) - 1) * '---', os.path.basename(root))
    for file in files:
        print(len(path) * '---', file)

In diesem überarbeiteten Code teilen wir den Pfad mit os.sep als Trennzeichen auf, das sowohl Windows- als auch Unix-Dateisysteme unterstützt. Durch Subtrahieren von 1 von der Länge des Pfads können wir die Tiefe der aktuellen Ebene ermitteln und die entsprechende Anzahl gestrichelter Linien anzeigen.

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