Ausgabebaumstruktur von Dateien in Python

Überblick

Ich habe eine Funktion erstellt, die eine Baumstruktur von Dateien und Verzeichnissen in Python wie einen Baum von Befehlen ausgibt. Machen Sie sich also eine Notiz.

Fazit

Geben Sie der folgenden Funktion den Pfad des Verzeichnisses, das Sie in der Baumstruktur anzeigen möchten. Da es für Mac implementiert ist, wird es nicht unterstützt, wenn Pfade nicht durch Schrägstriche getrennt sind.

import pathlib
import glob
import os

def tree(path, layer=0, is_last=False, indent_current=' '):
    if not pathlib.Path(path).is_absolute():
        path = str(pathlib.Path(path).resolve())
    
    #Aktuelles Verzeichnis anzeigen
    current = path.split('/')[::-1][0]
    if layer == 0:
        print('<'+current+'>')
    else:
        branch = '└' if is_last else '├'
        print('{indent}{branch}<{dirname}>'.format(indent=indent_current, branch=branch, dirname=current))
    
    #Holen Sie sich den Pfad der unteren Hierarchie
    paths = [p for p in glob.glob(path+'/*') if os.path.isdir(p) or os.path.isfile(p)]
    def is_last_path(i):
        return i == len(paths)-1
    
    #Rekursiv anzeigen
    for i, p in enumerate(paths):
        
        indent_lower = indent_current
        if layer != 0:
            indent_lower += '  ' if is_last else '│ '
            
        if os.path.isfile(p):
            branch = '└' if is_last_path(i) else '├'
            print('{indent}{branch}{filename}'.format(indent=indent_lower, branch=branch, filename=p.split('/')[::-1][0]))
        if os.path.isdir(p):
            tree(p, layer=layer+1, is_last=is_last_path(i), indent_current=indent_lower)

Stellen Sie sich beispielsweise den Fall vor, in dem das Verzeichnis mit dem Namen Test wie folgt konfiguriert ist.

Wenn der Baum zu diesem Zeitpunkt ausgeführt wird, sieht es so aus.

tree('/hogehoge/Test')

Ausgabeergebnis


<Test>
 ├<Test_01>
 │ ├ccccc.txt
 │ └bbbbb.txt
 ├<Test_02>
 ├<Test_03>
 └aaaaa.txt

Das Ergebnis ist das gleiche, auch wenn Sie es mit einem relativen Pfad angeben.

tree('./') # /hogehoge/Mit Test ausführen

Ausgabeergebnis


<Test>
 ├<Test_01>
 │ ├ccccc.txt
 │ └bbbbb.txt
 ├<Test_02>
 ├<Test_03>
 └aaaaa.txt

Recommended Posts

Ausgabebaumstruktur von Dateien in Python
Umgang mit JSON-Dateien in Python
Exportieren und Ausgeben von Dateien in Python
C sprachähnliche Struktur in Python
Japanische Ausgabe mit Python
Grundlagen von Python: Ausgabe
Geben Sie die Anzahl der CPU-Kerne in Python aus
Zusammenfassung zum Importieren von Dateien in Python 3
Ausgabe in Form eines Python-Arrays
Geschwindigkeitsbewertung der Ausgabe von CSV-Dateien in Python
Ausgabe der Tabellenstruktur in Django
Objektäquivalenzbeurteilung in Python
Suchen Sie rekursiv nach Dateien und Verzeichnissen in Python und geben Sie sie aus
Implementierung der schnellen Sortierung in Python
Lesen Sie die Fortran-Ausgabe mit Python
Eine Reihe von Skriptdateien, die Wordcloud mit Python3 ausführen
Verschieben von CSV-Dateien mit Python Teil 1
Bildpixel-Manipulation in Python
Ausgabe 2017 Premium Friday List in Python
Zeitdelta in Python 2.7-Serie teilen
Bearbeiten Sie Dateien und Ordner in Python
MySQL-automatische Escape-Funktion von Parametern in Python
Laden Sie Google Drive-Dateien in Python herunter
Machen Sie die Standardausgabe in Python nicht blockierend
Implementierung eines Lebensspiels in Python
Audio-Wellenform-Anzeige in Python
Compiler in Python: PL / 0-Syntaxbaum
Sortieren Sie große Textdateien in Python
Lesen Sie Dateien parallel zu Python
Python-Implementierung eines nicht rekursiven Segmentbaums
Das Gesetz der Zahlen in Python
Implementierung der ursprünglichen Sortierung in Python
Algorithmus (Segmentbaum) in Python (Übung)
Reversibles Verwürfeln von Ganzzahlen in Python
Extrahieren Sie mit Python Zeichenfolgen aus Dateien
Wie Sie die interne Struktur eines Objekts in Python kennen
Schreiben Sie mit dem ETE Toolkit verschiedene Formen phylogenetischer Bäume in Python
Geben Sie den Inhalt von ~ .xlsx im Ordner mit Python in HTML aus
Lesen Sie die Standardausgabe eines Unterprozesses zeilenweise in Python
Sehen Sie sich die in Python 3.8.2 integrierte Ausnahmebaumstruktur an
Ruft eine Liste der Dateien in einem Ordner mit Python ohne Pfad ab
Konvertierung der Zeichenfolge <-> Datum (Datum, Datum / Uhrzeit) in Python
Dateneingabe / -ausgabe in Python (CSV, JSON)
Überprüfen Sie das Verhalten des Zerstörers in Python
Übung, dies in Python zu verwenden (schlecht)
Allgemeine Relativitätstheorie in Python: Einführung
Suchen Sie nach Dateien wie Linux Find in Python
Zeigen Sie eine Liste der Alphabete in Python 3 an
Vergleich japanischer Konvertierungsmodule in Python3
Zusammenfassung verschiedener for-Anweisungen in Python
Geben Sie Anmerkungen für Python2 in Stub-Dateien ein!
Referenz der INI-Datei in Python oder Ruby
Das Ergebnis der Installation von Python auf Anaconda
Automatisieren Sie Jobs, indem Sie Dateien in Python bearbeiten
Gang of Four (GoF) -Muster in Python
Lesen und schreiben Sie JSON-Dateien mit Python
Grundlagen zum Ausführen von NoxPlayer in Python
UnicodeEncodeError hat Probleme mit der Standardausgabe von Python3
Beispiel für den Umgang mit EML-Dateien in Python
Massenersatz von Zeichenfolgen in Python-Arrays