Tengo algunos problemas al usar Python para generar un documento html. Estoy intentando crear una lista HTML de un árbol de directorios. Esto es lo que tengo hasta ahora:Cómo generar una lista de directorio html usando Python
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>')
Parece que funciona bien si sólo existe el directorio raíz, un nivel de subdirectorios y archivos. Sin embargo, agregar otro nivel de subdirectorios ocasiona problemas (porque la etiqueta de cierre no se ingresa las veces suficientes al final, creo). Pero estoy teniendo dificultades para entenderlo.
Si no se puede hacer de esta manera, ¿hay una manera más fácil de hacerlo? Estoy usando Flask pero soy muy inexperto con las plantillas así que quizás me esté perdiendo algo.
[matraz de autoindex] (http://packages.python.org/Flask-AutoIndex/) – jfs