簡體   English   中英

使用 Python 讀取 CSV 文件並將 CSV 文件的內容作為電子郵件內容發送

[英]Reading a CSV file & sending the contents of the CSV file as a e-mail message content using Python

我有一個 CSV 文件,並且使用 python ,我需要閱讀該文件並在電子郵件中發送 CSV 的內容,而不是作為附件。 使用下面的腳本,它的工作原理。

#!/usr/bin/python

import csv
from tabulate import tabulate
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import smtplib

me = 'me@gmail.com'
password = 'passWord'
server = 'smtp.gmail.com:587'
you = 'you@gmail.com'

text = """
Hello Team,

Import Status :

{table}

Regards,

Arun"""

html = """
<html><body><p>Hello Team,</p>
<p>Import Status :</p>
{table}
<p>Regards,</p>
<p>Arun</p>
</body></html>
"""

with open('/home/files/daily_import/import.csv') as input_file:
    reader = csv.reader(input_file)
    data = list(reader)
    print data
text = text.format(table=tabulate(data, headers="firstrow", tablefmt="grid"))
print text
html = html.format(table=tabulate(data, headers="firstrow", tablefmt="html"))
print html

message = MIMEMultipart( "alternative", None, [MIMEText(text), MIMEText(html,'html')])
message['Subject'] = "Test Mail - Import Status"
message['From'] = me
message['To'] = you
server = smtplib.SMTP(server)
server.ehlo()
server.starttls()
server.login(me, password)
server.sendmail(me, you, message.as_string())
server.quit()

但是使用上面的腳本以一種不起眼的方式發送郵件。 CSV 值的第一行突出顯示。

在此處輸入圖片說明

關於如何在沒有突出顯示第一行 CSV 內容的情況下發送電子郵件以及如何在電子郵件的交互式表格列中發送電子郵件的任何建議,如下所示?

CSV 文件:

在此處輸入圖片說明

第一行突出顯示,因為您的調用包括headers="firstrow" 如果您只是完全刪除該命名參數,它應該會更好。

要在表格單元格周圍設置邊框,您可能需要定義自己的 TableFormat,而不是依賴於模塊預定義的html格式。 例如,這是html給你的:

myformat = TableFormat(lineabove=Line("<table>", "", "", ""),
                       linebelowheader=None,
                       linebetweenrows=None,
                       linebelow=Line("</table>", "", "", ""),
                       headerrow=partial(tabulate._html_row_with_attrs, "th"),
                       datarow=partial(tabulate._html_row_with_attrs, "td"),
                       padding=0, with_header_hide=None)

嘗試對此進行更改,並將myformat而不是"html"作為tablefmt參數的值tablefmt

暫無
暫無

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

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