我想创建一个可以接收任意数量的列表的函数,这些列表将被转换为HTML表格,这些表格将被中断分隔,以便发送包含多个表格的电子邮件。
输入:
lsta = [['a','b','c'],['1','2','3'],['d','e','f']]
lstb = [['a','b','c'],['1','2','3'],['d','e','f']]
lstc = [['a','b','c'],['1','2','3'],['d','e','f']]
期望输出
<TABLE cellpadding="4" style="border: 1px solid #000000; border-collapse: collapse;" border="1">
<TR>
<TD>a</TD>
<TD>b</TD>
<TD>c</TD>
</TR>
<TR>
<TD>1</TD>
<TD>2</TD>
<TD>3</TD>
</TR>
<TR>
<TD>d</TD>
<TD>e</TD>
<TD>f</TD>
</TR>
</TABLE>
</br>
<TABLE cellpadding="4" style="border: 1px solid #000000; border-collapse: collapse;" border="1">
<TR>
<TD>a</TD>
<TD>b</TD>
<TD>c</TD>
</TR>
<TR>
<TD>1</TD>
<TD>2</TD>
<TD>3</TD>
</TR>
<TR>
<TD>d</TD>
<TD>e</TD>
<TD>f</TD>
</TR>
</TABLE>
</br>
<TABLE cellpadding="4" style="border: 1px solid #000000; border-collapse: collapse;" border="1">
<TR>
<TD>a</TD>
<TD>b</TD>
<TD>c</TD>
</TR>
<TR>
<TD>1</TD>
<TD>2</TD>
<TD>3</TD>
</TR>
<TR>
<TD>d</TD>
<TD>e</TD>
<TD>f</TD>
</TR>
</TABLE>
我的尝试:
import HTML
def HtmlTablesfromLists(*args):
[HTML.table(arg) + "</br> for arg in args]
结果:
['<TABLE cellpadding="4" style="border: 1px solid #000000; border-collapse: collapse;" border="1">\n <TR>\n <TD>a</TD>\n <TD>b</TD>\n <TD>c</TD>\n </TR>\n <TR>\n <TD>1</TD>\n <TD>2</TD>\n <TD>3</TD>\n </TR>\n <TR>\n <TD>d</TD>\n <TD>e</TD>\n <TD>f</TD>\n </TR>\n</TABLE></br>', '<TABLE cellpadding="4" style="border: 1px solid #000000; border-collapse: collapse;" border="1">\n <TR>\n <TD>a</TD>\n <TD>b</TD>\n <TD>c</TD>\n </TR>\n <TR>\n <TD>1</TD>\n <TD>2</TD>\n <TD>3</TD>\n </TR>\n <TR>\n <TD>d</TD>\n <TD>e</TD>\n <TD>f</TD>\n </TR>\n</TABLE></br>', '<TABLE cellpadding="4" style="border: 1px solid #000000; border-collapse: collapse;" border="1">\n <TR>\n <TD>a</TD>\n <TD>b</TD>\n <TD>c</TD>\n </TR>\n <TR>\n <TD>1</TD>\n <TD>2</TD>\n <TD>3</TD>\n </TR>\n <TR>\n <TD>d</TD>\n <TD>e</TD>\n <TD>f</TD>\n </TR>\n</TABLE></br>']
奖金问题:
我如何确保将其正确传递到以下函数
def GmailSend(self,email_subject,body_of_email):
session = smtplib.SMTP('smtp.gmail.com', 587)
session.ehlo()
session.starttls()
session.login(GMAIL_USERNAME, GMAIL_PASSWORD)
headers = "\r\n".join(["from: " + GMAIL_USERNAME,
"subject: " + email_subject,
"to: " + recipient,
"mime-version: 1.0",
"content-type: text/html"])
content = headers + "\r\n\r\n" + body_of_email
session.sendmail(GMAIL_USERNAME, recipient, content)
答案 0 :(得分:1)
你几乎就在那里,join
当前结果列表''
的元素构成了你想要的输出字符串:
In [16]: lst = ['<TABLE cellpadding="4" style="border: 1px solid #000000; border-collapse: collapse;" border="1">\n <TR>\n <TD>a</TD>\n <TD>b</TD>\n <TD>c</TD>\n </TR>\n <TR>\n <TD>1</TD>\n <TD>2</TD>\n <TD>3</TD>\n </TR>\n <TR>\n <TD>d</TD>\n <TD>e</TD>\n <TD>f</TD>\n </TR>\n</TABLE></br>', '<TABLE cellpadding="4" style="border: 1px solid #000000; border-collapse: collapse;" border="1">\n <TR>\n <TD>a</TD>\n <TD>b</TD>\n <TD>c</TD>\n </TR>\n <TR>\n <TD>1</TD>\n <TD>2</TD>\n <TD>3</TD>\n </TR>\n <TR>\n <TD>d</TD>\n <TD>e</TD>\n <TD>f</TD>\n </TR>\n</TABLE></br>', '<TABLE cellpadding="4" style="border: 1px solid #000000; border-collapse: collapse;" border="1">\n <TR>\n <TD>a</TD>\n <TD>b</TD>\n <TD>c</TD>\n </TR>\n <TR>\n <TD>1</TD>\n <TD>2</TD>\n <TD>3</TD>\n </TR>\n <TR>\n <TD>d</TD>\n <TD>e</TD>\n <TD>f</TD>\n </TR>\n</TABLE></br>']
In [17]: print ''.join(lst)
<TABLE cellpadding="4" style="border: 1px solid #000000; border-collapse: collapse;" border="1">
<TR>
<TD>a</TD>
<TD>b</TD>
<TD>c</TD>
</TR>
<TR>
<TD>1</TD>
<TD>2</TD>
<TD>3</TD>
</TR>
....
</TABLE></br>