Вы оборачиваете теги абзаца вокруг всех имен файлов.Вы, вероятно, хотели поместить теги абзаца вокруг каждого имени файла отдельно:
with open("directory", "r") as f:
page = "\n".join("<p>%s</p>" % line for line in f)
Или, что более семантически, вы можете поместить все это в неупорядоченный список:
with open("directory", "r") as f:
page = '<ul>%s</ul>' % "\n".join("<li>%s</li>" % line for line in f)
В качестве альтернативы, вы можете поместитьвсе это внутри тега pre
(предварительно отформатированный текст):
<code>with open('directory', 'r') as f:
page = '<pre>%s
'% f.read ()
Кроме того, вы можете рассмотреть возможность экранирования имен файлов с помощью cgi.escape
, чтобы браузеры не интерпретировали какие-либо специальные символы в имени файла.