Форум сайта python.su
0
Всем привет!
у меня есть шелл скрипт, генерирующий тесктовик.
Мне необходимо этот текстовик давать в браузер человеку.
Тут есть нюанс - в браузере идет очень длинная нечитабельная строчка.
Решение - забабахать однострочнут таблицу в формате хтмл.
Для этого мне нужно, что черзе пайтон была работа с файлом, где в начале файла идет следующее:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <title>One long row</title> <body> <table width="100%" cellspacing="0" cellpadding="5">
<tr><td width="500" valign="top">
</td></tr>
</table> </body> </html>
Офлайн
857
pagefmt = """\ <html> <head> <meta http-equiv='Content-Type' content='text/html; charset=utf-8'> <title>Text</title> </head> <body> {} </body> </html>""" tabfmt = """\ <table width="100%" cellspacing="0" cellpadding="5"> {} </table>""" rowfmt = """\ <tr><td width="500" valign="top"> {} </td></tr>""" text = """\ aa aa aa bb bb bb cc cc cc""" rows = map(rowfmt.format, text.splitlines()) table = tabfmt.format('\n'.join(rows)) page = pagefmt.format(table) print(page)
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
<title>Text</title>
</head>
<body>
<table width="100%" cellspacing="0" cellpadding="5">
<tr><td width="500" valign="top">
aa aa aa
</td></tr>
<tr><td width="500" valign="top">
bb bb bb
</td></tr>
<tr><td width="500" valign="top">
cc cc cc
</td></tr>
</table>
</body>
</html>
Отредактировано py.user.next (Июль 16, 2014 12:48:55)
Офлайн
0
[snake@ktovmasian-vm1 file_work2]$ python test1.py Traceback (most recent call last): File "test1.py", line 25, in <module> rows = map(rowfmt.format, text.splitlines()) AttributeError: 'file' object has no attribute 'splitlines'
Офлайн
857
text = fin.read()
Офлайн
0
Traceback (most recent call last): File "test1.py", line 26, in <module> rows = map(rowfmt.format, text.splitlines()) ValueError: zero length field name in format
Офлайн
103
f_out = r'<html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <title>One long row</title><body><table width="100%" cellspacing="0" cellpadding="5">' with open(r'/home/andrey/Downloads/test.txt', 'r') as f: for i in f.readlines(): f_out += '<tr><td width="500" valign="top">' + i + '</td></tr>' f_out += '</table></body></html>' with open(r'/home/andrey/Downloads/test.html', 'w') as f: f.write(f_out)
Офлайн
В питон 26 запись вида
'{}'.format(...)
rowfmt = """ \ <tr><td width="500" valign="top"> {0} </td></tr>"""
Офлайн
857
thomas
у меня питон 2.6.6
dimy44
обязательно нужно индекс указать
Офлайн
0
py.user.nextТут принципиально даже не использовать вторую версию, а конкретно версию 2.6.6, т.к. на сервере мне не разрешат поставить пайтон 2.7.
Лучше вместо добавления индекса поставить питон 2.7, если принципиальна вторая версия.
Офлайн
0
terabayt
f_out = r'<html><head> <meta http-equiv=“Content-Type” content=“text/html; charset=utf-8”> </head> <title>One long row</title><body><table width=“100%” cellspacing=“0” cellpadding=“5”>'
with open(r'/home/andrey/Downloads/test.txt', ‘r’) as f:
for i in f.readlines():
f_out += ‘<tr><td width=“500” valign=“top”>’ + i + ‘</td></tr>’
f_out += ‘</table></body></html>’
with open(r'/home/andrey/Downloads/test.html', ‘w’) as f:
f.write(f_out)
Офлайн