Jak wygenerować listę katalogów HTML za pomocą Pythona

Mam problemy z używaniem Pythona do generowania dokumentu HTML. Próbuję utworzyć listę HTML drzewa katalogów. Oto, co mam do tej pory:

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>')

Wydaje się, że działa dobrze, jeśli istnieje tylko katalog główny, jeden poziom podkatalogów i plików. Jednak dodanie kolejnego poziomu podkatalogów powoduje problemy (ponieważ myślę, że tag close nie jest wprowadzany wystarczająco dużo razy). Ale ciężko mi się tym zająć.

Jeśli nie można tego zrobić w ten sposób, czy jest to łatwiejszy sposób? Używam Flask, ale jestem bardzo niedoświadczony szablonami, więc może coś mi brakuje.

questionAnswers(1)

yourAnswerToTheQuestion