在python中将列表转换为HTML表

2024-09-29 23:18:17 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我的.txt文件是

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

我要读的代码是:

^{pr2}$

Tags: 文件数据代码txttox内容html段值
3条回答

您可以使用一些可用的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>
    """
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>'    

我想把你分开。以下是我将如何做到这一点(当不使用某种框架时):

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)

以下是我得到的输出:

^{pr2}$

相关问题 更多 >

    热门问题