Правильно ли я вас понял, что вам нужно только прочитать содержимое из файла? Если вы хотите прочитать весь контент, используйте что-то вроде этого (Python> = 2.5):
from __future__ import with_statement
with open(my_file_name, 'r') as fp:
content = fp.read()
Примечание: Строка from __future__ должна быть первой строкой в вашем файле .py (или сразу после спецификации кодирования содержимого, которую можно поместить в первую строку)
Или старый подход:
fp = open(my_file_name, 'r')
try:
content = fp.read()
finally:
fp.close()
Если ваш файл содержит не-ascii символы, вам также следует взглянуть на страницу кодеков: -)
Тогда, на основе вашего примера, последний раздел может выглядеть так:
from __future__ import with_statement
@route(':filename')
def static_file(filename):
mylookup = TemplateLookup(directories=['html'])
mytemplate = mylookup.get_template('hello/index.html')
content = ''
with open('name.html', 'r') as fp:
content = fp.read()
return mytemplate.render(name=content)
Более подробную информацию об объекте file можно найти в официальной документации: -)
Существует также версия ярлыка:
content = open('name.html').read()
Но лично я предпочитаю длинную версию с явным закрытием: -)