С python и cherrypy, как мне прочитать текстовый файл и отобразить его на странице? - PullRequest
0 голосов
/ 17 марта 2012

У меня есть текстовый файл в формате:

line_1
line_2
line_3

Я пытаюсь прочитать его в списке и отобразить на веб-странице так же, как он выглядит внутри txt-файла; одна строка под другой. Вот мой код

@cherrypy.expose
def readStatus(self):

    f = open("directory","r")
    lines = "\n".join(f.readlines())
    f.close()
    page += "<p>%s</p>" % (lines)

Однако вывод, который я получаю:

line_1 line_2 line_3

Было бы замечательно, если бы кто-нибудь дал мне понять, что делать, чтобы line_1, line_2 и line_3 отображались в 3 отдельных строках внутри веб-браузера?

Спасибо заранее.

1 Ответ

1 голос
/ 17 марта 2012

Вы оборачиваете теги абзаца вокруг всех имен файлов.Вы, вероятно, хотели поместить теги абзаца вокруг каждого имени файла отдельно:

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, чтобы браузеры не интерпретировали какие-либо специальные символы в имени файла.

...