作者a115073 (wei)
看板Python
标题[问题] 将mysql query结果利用smtplib写入并寄出
时间Fri Aug 12 09:28:50 2016
各位先进好~
最近小的再写一只简单的捞资料.py
最後有一个小小的问题卡住了。
我希望由mysql捞出来的资料利用html写成表格并寄出。
网路上仅查到N年前有个 HTML.table(?),但在python 2.7上并没有这个函式库
想请教各位有什麽其他的方法可以达到这个目标。
下方是小弟写的:
#!/usr/bin/env python
import MySQLdb
import datetime
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
time = datetime.datetime.now().strftime('%Y-%m-%d')
now_time = time+"%"
#connect db & query
db = MySQLdb.connect('host', 'user', 'passwd','db_name')
cursor = db.cursor()
cursor.execute(""" mysql command""")
data = cursor.fetchall()
list = (enumerate(data))
#test on pycharm
for r,row in enumerate(list) :
for c,col in enumerate(row):
print col
#login & send mail using smtplib
sender='someone@mail'
recipient = 'someone@mail'
msg = MIMEMultipart('alternative')
msg['Subject'] = "Test"
msg['From'] = sender
msg['To'] = recipient
text = "blah blah"
html = str(data)
part1 = MIMEText(text, 'plain')
part2 = MIMEText(html, 'table')
msg.attach(part1)
msg.attach(part2)
s = smtplib.SMTP()
s.connect(host='mail_host')
s.ehlo()
s.starttls()
s.login("user","passwd")
s.sendmail(sender, recipient, msg.as_string())
#...下略
在html = str(data)这边确实会显示出查询结果,但就是一大串的查询结果...
e.g (('a','b','c'),('d','e','f'),('g','h','i'))
每一个()都是一次的查询。
希望有大大可以给小弟一点方向..这个问题困扰我两周了 = =
文长伤眼抱歉~
谢谢!各位
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 203.67.9.60
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1470965337.A.787.html
2F:→ aweimeow: 你是从这边找到的吗,如果是的话,下方有下载连结哦! 08/12 11:27
3F:推 CaptainH: 两周内你从没想过去学个html? 08/12 12:14
4F:→ Chinfone: 我是用 prettytable ,也是跟你一样的需求 08/12 13:51
5F:→ a115073: CaptainH大,如果要用html的话本来就有实际在跑的php了.就 08/12 15:14
6F:→ a115073: 是想学着利用python去解决所有问题,顺便让自己多学一点 08/12 15:15
7F:→ a115073: aweimeow大,谢谢您,我再试试看!虽然我不是在这边找到的.. 08/12 15:16
8F:→ a115073: Chinfone大谢谢您,我也去试试看! 08/12 15:17