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