如何将列表带到HTML表?

时间:2019-05-25 06:57:17

标签: python html tkinter

我正在用Python进行网页抓取,现在我不得不写一个文件来生成HTML输出。

因此,我有一个名为checked_list的列表,其中填充:

['"link of the picture"', 'title event', 'date event']

我尝试制作text1text2,然后制作.write(),它们都可以工作。我可以显示图片。但是我需要一个for循环来继续读取所有索引,以便可以显示图片事件,标题事件和日期事件。

我尝试使用text1然后使用text1 +=来编写整个HTML,并且尝试使用text1和text2然后将它们组合在一起,但是我始终找不到使用循环的方法说语法错误。

checked_list的示例:

checked_list = ['"http://bneart.com/wp-content/uploads/2019/05/3fbf2374-5cb4-4229-a247-78c2582c5105-817x1024.jpg"', 'Lara Merrett: Flip side', '7th - 25th May'] -- > for 1 event

checked_list = ['"http://bneart.com/wp-content/uploads/2019/05/Foliage-and-Structure-black_small-1024x613.jpg"', 'Helen Wyatt: I Walk the Line', '11th May - 13th July', '"http://bneart.com/wp-content/uploads/2019/05/3fbf2374-5cb4-4229-a247-78c2582c5105-817x1024.jpg"', 'Lara Merrett: Flip side', '7th - 25th May'] -- > 2 events
def print_planner():
checked_list = []
index = 0
html_file = open(planner_file, "w")
text1 = '''
<!DOCTYPE html>
<html>
<head>
</head>
<body>
    <table>
        <tr>
            <th>Entertainment List</th>
        </tr>
        <tr>           
        '''
text2 = "<td><img src=" + str(checked_list[index]) + ">" "</td></tr>"

'''
    </table>
</body>
</html>
'''
html_file.write(text1)
html_file.write(text2)
html_file.close()

有什么主意,我该如何组合其中的循环?要么只使用text1,要么使用text1text2

只要有效,就可以了。如果您可以看到图片,那么到目前为止,我可以做到。我想在标题下打印标题和日期。

1 个答案:

答案 0 :(得分:0)

我认为这正是您想要的。只需在image_exts元组中为您添加更多图像扩展即可。

def print_planner():
    image_exts = ('.png', '.jpg', '.gif') # add valid image extensions for you
    checked_list = ['data1', 'data2', 'hi', 'picture1.png', 'picture2.png', 'picture3.jpg', 'I am python']
    checked_list = map(str, checked_list) # cast everything in str and persist results.

    text2 = ''.join(
        ['<td><img src="{}" /> </td>'.format(src) for src in checked_list for ext in image_exts if src.endswith(ext)]
    )
    text1 = '''
    <!DOCTYPE html>
    <html>
    <head>
    </head>
    <body>
        <table>
            <tr>
                <th>Entertainment List</th>
            </tr>
            <tr>
                {}  
            </tr>
        </table>

        </table>
    </body>
    </html>
    '''.format(text2)
    with open(planner_file, 'w') as f:
        # using with statement file-stream will be closed automatically.
        f.write(text1)