我用Python批量读取考生成绩单,并自动发送录取通知书邮件
点击上方“Python爬虫与数据挖掘”,进行关注
回复“书籍”即可获赠Python从入门到进阶共10本电子书
今
日
鸡
汤
欢笑情如旧,萧疏鬓已斑。
01
前言
大家好,我是J哥。
高考刚结束不久,很多小伙伴肯定都期待有个好成绩,能够进入理想的大学。而一旦成绩出来,大学招生办老师将面临给广大学子发送录取通知书的巨大工作压力,本文将利用Python技术,手把手教你用Python批量读取考生成绩,邮件合并且自动发送邮件,赶紧学起来吧~
需求如下:
02
准备工作
首先,我们将图中三个文件置于同一文件夹中,邮件合并.ipynb为新建的Python文件,123邮件合并数据源.xls为成绩Excel表,邮件合并模板.docx为录取通知书模板。
我们打开录取通知书模板,长这样:
如果你使用过Word邮件合并功能批量生成文件,那这种模板就再熟悉不过了。
03
实战演练
文件都准备完毕,接下来打开Python文件,开始编写代码。
1、导入模块
导入之前需要安装两个主要库,一个是操作word模板的doctxpl,一个是操作邮件的zmail。因此先pip它们,很快~
#安装模块
pip install docxtpl
pip install zmail
接着导入需要用到的模块:
#导入模板库
from docxtpl import DocxTemplate
import pandas as pd
#导入邮件库
import zmail
import time
2、邮件合并
运用pandas的read_excel方法读取考生成绩表,逐个遍历考生信息,并将关键信息渲染至Word模板中,最后以考生姓名作为文件名保存。
#读取数据源
df=pd.read_excel('123邮件合并数据源.xls')
print(df)#Word邮件合并批量生成录取通知书
for i in range(len(df)):#以字典形式存储模板中需要更新的关键信息contxt=dict(df.iloc[i])#获取姓名,作为文件名filename=contxt['姓名']#获取邮箱地址youxiang=contxt['邮箱']#打开模板文件tpl = DocxTemplate('邮件合并模板.docx')#渲染(更新)模板文件生成新文件tpl.render(contxt)#保存文件tpl.save(filename+'.docx')
运行结果:
3、发送邮件
接下来,我们需要将新生成的录取通知书逐个通过QQ邮箱发送,发件之前呢,需要对QQ邮箱进行简单配置。
第1步:打开QQ邮箱,点击设置-账户,一直拉到SMTP服务。
开启SMTP服务,结果系统提示J哥的QQ没有申请第二代密码保护,无法开启,于是申请密保。申请密保主要是把手机号绑定你的QQ,如果申请过程中忘记一些信息,邀请你的好友辅助验证即可~
好友辅助验证完成后,按要求发送短信:
终于拿到授权码(Python发送QQ邮件必备参数):
第2步:加入发送邮件的Python代码段
发送邮件的代码相对简单,以下代码段也给出了详细的注释,当然,最有效的学习方式还是参考官方文档,可以对各个参数进行深入研究。
#设置邮件主题subject='录取通知书'#设置邮件内容content='你己被我校录取,请妥善保管通知书,并按时报到!'#设置邮件附件attachment=filename+'.docx'#设置邮件信息mail={'subject':subject,'content_text':content,'attachments':attachment}#设置发件邮箱server = zmail.server('你的@qq.com','你的授权码')#发送邮件server.send_mail(youxiang,mail)time.sleep(2)print('第'+str(i+1)+'封邮件己发送成功')
邮件发送后,打开其中一封邮件,如下:
04
完整代码
#导入模板库
from docxtpl import DocxTemplate
import pandas as pd
#导入邮件库
import zmail
import time
#读取数据源
df=pd.read_excel('123邮件合并数据源.xls')
print(df)#生成文件并以附件形式发送到邮箱
for i in range(len(df)):#以字典形式存储模板中需要更新的关键信息contxt=dict(df.iloc[i])#获取姓名,作为文件名filename=contxt['姓名']#获取邮箱地址youxiang=contxt['邮箱']#打开模板文件tpl = DocxTemplate('邮件合并模板.docx')#渲染(更新)模板文件生成新文件tpl.render(contxt)#保存文件tpl.save(filename+'.docx')#设置邮件主题subject='录取通知书'#设置邮件内容content='你己被我校录取,请妥善保管通知书,并按时报到!'#设置邮件附件attachment=filename+'.docx'#设置邮件信息mail={'subject':subject,'content_text':content,'attachments':attachment}#设置发件邮箱server = zmail.server('你的@qq.com','你的授权码')#发送邮件server.send_mail(youxiang,mail)time.sleep(2)print('第'+str(i+1)+'封邮件己发送成功')print('邮件己全部发送成功')
------------------- End -------------------
往期精彩文章推荐:
一篇文章教会你用Python抓取抖音app热点数据
手把手教你进行pip换源,让你的Python库下载嗖嗖的
手把手教你用免费代理ip爬数据
欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持
想加入Python学习群请在后台回复【入群】
万水千山总是情,点个【在看】行不行
/今日留言主题/
随便说一两句吧!
我用Python批量读取考生成绩单,并自动发送录取通知书邮件相关推荐
- json字段顺序读取 python_如何利用Python批量读取视频文件的时间长度?
本期的主题是利用Python来实现对视频文件时间长度的读取. 在学习编程语言时,相比较于通过书本来学习知识,我更喜欢通过观看学习视频的方式来进行学习,通过主讲老师的讲解,我能很直观且快速的了解一些知识 ...
- python批量提取word指定内容_使用python批量读取word文档并整理关键信息到excel表格的实例...
目标 最近实验室里成立了一个计算机兴趣小组 倡议大家多把自己解决问题的经验记录并分享 就像在CSDN写博客一样 虽然刚刚起步 但考虑到后面此类经验记录的资料会越来越多 所以一开始就要做好模板设计(如下 ...
- python批量读取图片gps位置_某少儿不宜网站图片拍摄位置分析,Python批量读取图片GPS位置!...
原标题:某少儿不宜网站图片拍摄位置分析,Python批量读取图片GPS位置! 1. python读取图片exif属性中的GPS信息 智能手机或平板如果在拍照时开启定位服务,照片中就会记录拍照位置信息和 ...
- python 批量读取csv_python批量读取csv文件
请问大神怎样用python批量读取文件夹下的文件? python如何读取CSV文件一部分数据 Python如何批量读取CSV文件并写入TXT? 如何用python把多个csv文件数据处理后汇总到新cs ...
- 自动化神器啊,Python 批量读取身份证信息写入 Excel
大家好,今天分享一个实用技能,利用 Python 批量读取身份证信息写入 Excel. 喜欢记得收藏.关注.点赞. 注:文末提供完整版代码.技术交流方式 读取 以图片形式的身份证为例,信息读取我们使用 ...
- python批量读取csv文件-Python读取/批量读取文件
相信很多人的日常工作中,数据源除了来自数据库以外,其次就是外部文件,因此掌握读取文件的技能是相当必要的.在这里特此整理读取外部文件的方法,希望能有助你们快速解决问题.当然本文对读者的假设是有一定的py ...
- python批量读取csv文件-使用Python读写csv文件的三种方法
行之间无空行十分重要,如果有空行或者数据集中行末有空格,读取数据时一般会出错,引发[list index out of range]错误.PS:已经被这个错误坑过很多次! 使用python I/O写入 ...
- python批量读取grib_windows python读取grib2数据
一.环境准备 (1).python3环境 (3).wgirb2工具(用于读取grib2文件),下载地址:ftp://ftp.cpc.ncep.noaa.gov/wd51we/wgrib2 二.环境测试 ...
- python批量读取文件夹的图片并处理成模型输入格式
我们知道在训练图像模型时,需要从文件夹里读取图片. 这里演示下,怎样从文件夹里批量读取图片,并处理成我们想要的 x,y 即特征和标签. 输入维度理解 以卷积神经网络为例子. 我们知道卷积神经网络con ...
最新文章
- 为什么一定要杀掉病毒?---帮一位老师解决MyDocument.exe优盘文件夹图标病毒问题...
- 《jQuery Mobile入门经典》—— 2.7 练习
- sqlserver 穷举 排列 组合
- 函数使用了堆栈的字节超过_单片机地址空间,堆栈理解
- 锁的释放流程-ReentrantLock.unlock
- python数据统计代码_Python 数据的累加与统计的示例代码
- 第二篇 第一章建筑分类和耐火等级检查(二)
- java sftp 公开键设定_如何使用JSch SFTP库解析Java UnknownHostKey?
- ubuntu 给执行文件添加快捷方式
- Tensorflow源码编译
- ROS的学习(五)在工作空间中构建和使用catkin包
- Ubuntu下PDF编辑软件pdfedit
- 单片机仿真软件proteus8安装与使用
- openwrt 如何打patch补丁
- 电脑电话,怎么用电脑打电话
- 最易学和最难学编程语言排行榜!
- 操作系统排名服务器,服务器操作系统排行榜
- 读《软件测试经典教程》有感
- python用pandas读取excel_Python 中利用Pandas处理复杂的Excel数据
- 如何创建用户和组?怎样添加用户呢?windows dos命令