将列表转换为python中的HTML表

时间:2014-12-23 10:05:04

标签: python html

我有一个文本文件,我在其中读取内容并将其分配给变量。我需要将内容放在HTML表中。截至目前,我写了一个python片段,将内容放在一个变量中。如何将其转换为HTML表格。我需要遍历文件并分配变量并将数据更新为表中的字段值。我该怎么做 ?需要帮助

我的.txt文件是

34,52,l,ma,cgb,eta
45,52,X,,lta,tox
67,52,V,nm,,oyt

我要阅读的代码是:

imp_auth = []
asn_eng = []


with open ("FR_list.txt","rt") as f:
 for line in f:
  (id,rel,sta,sev,ia,ae,iam,aem) = line.split(',')
  imp_auth.append(iam)
  asn_eng.append(aem)

3 个答案:

答案 0 :(得分:1)

您可以使用一些可用的html模板引擎并渲染模板。

例如,使用Jinja2诱人引擎

from jinja2 import Template
table = """
<table>
    {% for line in lines %}
    <tr>
        <td>{{ line[0] }}</td>
        <td>{{ line[1] }}</td>
        <td>{{ line[2] }}</td>
        ...
    </tr>
    {% endfor %}
</table>
"""
with open("FR_list.txt", "rt") as f:
    template = Template(table)
    t = template.render(lines=[line.split(',') for line in f])
    print(t)
    """
    <table>
        <tr>
            <td>34</td>
            <td>52</td>
            <td>l</td>
            ...
        </tr>
        ...
    </table>
    """

答案 1 :(得分:1)

我会把你要做的事情分开。这是我将如何做到这一点(当不使用某种类型的框架时):

def parse(filename='content.txt'):
    with open(filename, 'r') as fh:
        for line in fh.readlines():
            row = [x.strip() for x in line.split(',')]
            if len(row) < 2: continue
            yield row[-2:] # iam,aem

def format_element(element):
    return '\n    <td>{elem}</td>'.format(elem=element)

def format_row(row): 
    return  '<tr>' + ''.join([format_element(element) for element in row]) + '\n</tr>'

with open('result.html', 'w') as output:
    for row in parse():    
        output.write(format_row(row))
        print format_row(row)

这是我得到的输出:

<tr>
    <td>cgb</td>
    <td>eta</td>
</tr>
<tr>
    <td>lta</td>
    <td>tox</td>
</tr>
<tr>
    <td></td>
    <td>oyt</td>
</tr>

答案 2 :(得分:0)

You can use the following
imp_auth = []
with open ("tt.txt","rt") as f:
    for line in f:
        (id,rel,sta,sev,iam,aem) = line.split(',')
        imp_auth.append((id,rel,sta,sev,iam,aem.replace('\n','')))
result = '<table>'
result += '<th>col1</th><th>col2</th><th>col3</th>'
result += '<th>col4</th><th>col5</th><th>col6</th>'
for t in range(0,len(imp_auth)):
    for ele in imp_auth[t]:        
        result += '<tr>'
        result += '<td>ele[0]</td>ele[1]<td>ele[2]</td>'
        result += '<td>ele[3]</td>ele[4]<td>ele[5]</td>'
        result += '</tr>'

result += '</table>'