我有多个CSV文件,例如CSV1和CSV2以下,并且需要使用python将两个csv合并到电子邮件正文中
CSV1 :-
S.No Name Student
1 Rishabh Engg
2 Samee Engg
CSV1 :-
S.No Name Student
1 Ankit Med
2 Arjun Engg
=====Expected output i need is like below :-===========
Dear Rishabh ,
PFB the Data :-
CSV1 :-
S.No Name Student
1 Rishabh Engg
2 Samee Engg
CSV1 :-
S.No Name Student
1 Ankit Med
2 Arjun Engg
关于, 瑞沙(Rishabh Jaiswal)
=======================
仅供参考,我尝试并成功地通过以下代码帮助将单个csv制作到电子邮件正文中:-
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')])
message['Subject'] = "Your data"
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()
答案 0 :(得分:0)
为了合并两个csv文件中的数据,您需要从两个文件中读取数据。一种简单的方法:
import csv
with open('csv1.csv', 'r') as csv1, open('csv2.csv') as csv2:
reader1 = csv.reader(csv1, delimiter=',')
reader2 = csv.reader(csv2, delimiter=',')
all_text = str()
for row in reader1:
all_text += ' '.join(row) + '\n'
for row in reader2:
all_text += ' '.join(row) + '\n'
print all_text
这将成功地将csv文件中的数据合并为单个字符串。您可以尝试使用all_text字符串的格式。至于发送电子邮件,似乎您可以通过python成功完成SMTP。
还有一个名为mailmerge的整洁的python程序包,该程序包将来自csv数据https://github.com/awdeorio/mailmerge的电子邮件模板化,不知道您是要模板来自csv文件数据的电子邮件,还是您的动机是什么,但是也许这是对您有用:)