Pythonを使用してHTMLドキュメントを生成する際に問題が発生しました。ディレクトリツリーのHTMLリストを作成しようとしています。これは私がこれまでに持っているものです:
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>')
ルートディレクトリ、1レベルのサブディレクトリ、およびファイルしかない場合は、うまく機能するようです。ただし、別のレベルのサブディレクトリを追加すると、問題が発生します(最後に、closeタグが十分な回数入力されていないためです)。しかし、私は頭を悩ませるのに苦労しています。
この方法で実行できない場合、より簡単な方法はありますか?私はFlaskを使用していますが、テンプレートの経験が非常に少ないため、何かが足りない可能性があります。