So generieren Sie eine HTML-Verzeichnisliste mit Python

Ich habe einige Probleme mit Python, um ein HTML-Dokument zu generieren. Ich versuche, eine HTML-Liste eines Verzeichnisbaums zu erstellen. Das habe ich bisher:

def list_files(startpath):
    for root, dirs, files in os.walk(startpath):
        level = root.replace(startpath, '').count(os.sep)
        if level <= 1:
            print('<li>{}<ul>'.format(os.path.basename(root)))
        else:
            print('<li>{}'.format(os.path.basename(root)))
        for f in files:
            last_file = len(files)-1
            if f == files[last_file]:
                print('<li>{}</li></ul>'.format(f))
            elif f == files[0] and level-1 > 0:
                print('<ul><li>{}</li>'.format(f))
            else:
                print('<li>{}</li>'.format(f))
    print('</li></ul>')

Es scheint gut zu funktionieren, wenn es nur das Stammverzeichnis, eine Ebene von Unterverzeichnissen und Dateien gibt. Das Hinzufügen einer weiteren Ebene von Unterverzeichnissen führt jedoch zu Problemen (da das schließende Tag am Ende meines Erachtens nicht oft genug eingegeben wird). Aber es fällt mir schwer, mich darum zu kümmern.

Wenn es so nicht geht, gibt es einen einfacheren Weg, es zu tun? Ich benutze Flask, aber ich bin sehr unerfahren mit Vorlagen, vielleicht fehlt mir etwas.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage