簡體   English   中英

在python中使用表格打印多個HTML表格

[英]Printing mutiple HTML tables using tabulate in python

我想使用 tabulate 包生成兩個 HTML 表,但我只能生成一個表並發送郵件。

是否可以將多個 html 表放入使用 smtplib 和電子郵件發送的消息中? 每當我將 attach() 用於多件事時,它只會添加第一個。

text = """
Hello, Friend.

Here is your data:

{table}

Regards,

Me
"""

html = """
<html>
<body>
    <p>Hello, Friend.</p>
    <p>Here is your data:</p>
    {table}
    <p>Regards,</p>
    <p>Me</p>
</body>
</html>
"""

with open('input.csv') as input_file:
    reader = csv.reader(input_file)
    data = list(reader)

    text = text.format(table=tabulate(data, headers="firstrow", tablefmt="grid"))
    html = html.format(table=tabulate(data, headers="firstrow", tablefmt="html"))

    message = MIMEMultipart(
       "alternative", None, [MIMEText(text), MIMEText(html,'html')]
    )

是的。 首先,您必須更改要替換為表格的字段數:

text = """ [...] {table1} {table2} [...] """

然后你必須將內容傳遞給格式為 kwargs:

text = text.format(table1=tabulate(data, headers="firstrow", tablefmt="grid"),
                   table2=your_new_table_tabulation)

你可以為 html 做同樣的事情

Python 中的字符串格式不是一種附件,而是將內容替換為預先格式化的字段。 您可以根據需要替換任意數量的字段,輸入您喜歡的名稱以及您喜歡的內容。 然后,當您發送電子郵件時,您將發送一個普通的 HTML 文件,其中的表格呈現為 HTML/文本

我鼓勵您查看: https : //docs.python.org/3/library/string.html#string.Formatter.format

這適用於 Python 的 3.7 版。 您幾乎可以在線獲得所有 Python 版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM