打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Python自动发图片邮件

但是什么都架不住领导的需求,领导说自己不爱看附件,就想正文里看到数据,怎么办呢?




第一反应感觉更好了,毕竟就不用弄Excel表了,于是就开干了


1、 数据库连接取数

import pandas as pdimport pymysqlconfig = {          'host':'localhost',          'port':33061,          'user':'root',          'password':'root'          }db = pymysql.connect(**config)sql=('select * from per_info.T_SCORE')data=pd.read_sql(sql,db) data

结果:


数据可以去sql疑难杂症——列转行pviot这里拿


2、 数据模板
假设领导是个教导主任,要求每天看同学们考试成绩,要求分班级,分科目查看平均值以便对l任课老师进行奖惩,代码如下:

 data=pd.pivot_table(data,index=['SUBJECT'],columns=['CLASS_ID'],values=['SCORE'],aggfunc=(np.mean))data

结果:


3、 邮件发送
代码如下:

# -*- coding: utf-8 -*-from exchangelib import  Account,Credentials,Configuration,DELEGATE,HTMLBody,Message,NTLMfrom exchangelib.protocol import BaseProtocol, NoVerifyHTTPAdapterimport time#此句用来消除ssl证书错误,exchange使用自签证书需加上BaseProtocol.HTTP_ADAPTER_CLS = NoVerifyHTTPAdaptercred = Credentials(r'user', 'password')  #登录信息config = Configuration(server='mail.yyyy.com', credentials=cred, auth_type=NTLM)     #邮箱服务器信息a = Account( primary_smtp_address='xxx@yyyy.com', config=config, autodiscover=False, access_type=DELEGATE ) #账户设置#发送邮箱函数   def send_mail(Subject,msg,To,Cc):    m = Message( account=a,  #账户设置                folder=a.sent,                subject=Subject, #主题                body=HTMLBody(msg),  #邮件内容                to_recipients=To,  #收件人                cc_recipients=Cc  #抄送人               )      m.send_and_save()name = '月考成绩'To = ['xxxx@yy.com']Cc = ['xxxx@yyy.com']subject = name+time.strftime('%Y%m%d')msg = '''<h1>高三年级考试成绩</h1>'''+z2.to_html()send_mail(subject,msg,To,Cc)

效果:





但是领导不满意,说想看图,一目了然那种。。怎么办呢。。加!
代码:

import matplotlib.pyplot as pltfrom io import BytesIOimport base64buffer = BytesIO()plt.rcParams['font.sans-serif']=['SimHei'] plt.ylim(60,120)plt.title('科目平均成绩')plt.ylabel('分数')plt.xlabel('科目')for i in data.columns:    plt.plot(data[i],label=i)    plt.legend() plt.savefig(buffer)  plot_data = buffer.getvalue()imb = base64.b64encode(plot_data) ims = imb.decode() imd = 'data:image/png;base64,'+ims iris_im = '''<h1>高三年级考试成绩图像</h1>  ''' + '''<img src='%s'>''' % imdroot =iris_im #将多个 html 格式的字符串连接起来msg = '''<h1>高三年级考试成绩</h1>'''+z2.to_html()+rootsend_mail(subject,msg,To,Cc)

效果:



题外话一班的英语好厉害。。。。




~



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
ASP.NET2.0中发送电子邮件-陈晨-博客园
CAS单点登录集成
socket1
mq-netty示例
用struts上传多个文件的方法
机器学习笔记
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服