Python网络爬虫与文本数据分析(视频课)
年关降至,肯定有群发短信发感谢信的需求,今天继续接着昨天的自动化办公教程来一个自动群发邮件。仍然假设是给员工核算工资,发送工资条详情顺带着表达一下公司的感谢。
读取工资条
HR核算每个人的工资
import pandas as pd
df = pd.read_excel('工资条.xlsx')
print(df.to_markdown())
| | 员工id | 姓名 | 年龄 | 岗位 | 底薪 | 奖金 | 交通补助 | 餐补 | 邮箱 |
|---:|---------:|:-------|-------:|:-------|-------:|-------:|-----------:|-------:|:------------------|
| 0 | 1 | 张三 | 25 | 销售 | 3000 | 10000 | 1000 | 1000 | [email protected] |
| 1 | 2 | 李四 | 30 | 后勤 | 3200 | 500 | 200 | 500 | [email protected] |
| 2 | 3 | 王五 | 21 | 前台 | 4000 | 1000 | 500 | 200 | [email protected] |
| 3 | 4 | 赵六 | 34 | 财务 | 5000 | 1000 | 500 | 500 | [email protected] |
计算每个人的工资
df['工资总计'] = df.eval("底薪+奖金+交通补助+餐补")
print(df.to_markdown())
| | 员工id | 姓名 | 年龄 | 岗位 | 底薪 | 奖金 | 交通补助 | 餐补 | 邮箱 | 工资总计 |
|---:|---------:|:-------|-------:|:-------|-------:|-------:|-----------:|-------:|:------------------|-----------:|
| 0 | 1 | 张三 | 25 | 销售 | 3000 | 10000 | 1000 | 1000 | [email protected] | 15000 |
| 1 | 2 | 李四 | 30 | 后勤 | 3200 | 500 | 200 | 500 | [email protected] | 4400 |
| 2 | 3 | 王五 | 21 | 前台 | 4000 | 1000 | 500 | 200 | [email protected] | 5700 |
| 3 | 4 | 赵六 | 34 | 财务 | 5000 | 1000 | 500 | 500 | [email protected] | 7000 |
通知信模板
template = """{name}先生(女士),您好!\n\n\
这是{date}的工资条信息:\n\n\
{gangwei}底薪¥{base}\n\
交通补助¥{transport}\n\
餐补¥{food}\n\n\
由于您当月出色的表现,
公司决定奖励你¥{bonus}\n\
当月工资总计{salary}\n
希望{familyname}兄弟(姐妹)继续为了公司加油~\n\n
from {company}公司
"""
info = template.format(name='张三',
date='2019年12月',
gangwei='销售',
base=3000,
transport=1000,
food=1000,
bonus=10000,
salary=15000,
familyname='张',
company='杭州XX')
print(info)
运行结果
张三先生(女士),您好!
这是2019年12月的工资条信息:
销售底薪¥3000
交通补助¥1000
餐补¥1000
由于您当月出色的表现,
公司决定奖励你¥10000
当月工资总计15000
希望张兄弟(姐妹)继续为了公司加油~
from 杭州XX公司
全体职员通知信
for idx, employee in df.iterrows():
info = template.format(name=employee['姓名'],
gangwei=employee['岗位'],
base=employee['底薪'],
transport=employee['交通补助'],
food=employee['餐补'],
bonus=employee['奖金'],
salary=employee['工资总计'],
familyname=employee['姓名'][0],
company='杭州XX',
date='2019年12月')
print(info)
print('===============================================================')
运行结果
张三先生(女士),您好!
这是2019年12月的工资条信息:
销售底薪¥3000
交通补助¥1000
餐补¥1000
由于您当月出色的表现,
公司决定奖励你¥10000
当月工资总计15000
希望张兄弟(姐妹)继续为了公司加油~
from 杭州XX公司
。。。。。省略。。。。。
赵六先生(女士),您好!
这是2019年12月的工资条信息:
财务底薪¥5000
交通补助¥500
餐补¥500
由于您当月出色的表现,
公司决定奖励你¥1000
当月工资总计7000
希望赵兄弟(姐妹)继续为了公司加油~
from 杭州XX公司
===============================================================
群发邮件
群发邮件前需要先安装好zmail,学一下zmail使用方法
使用zmail群发邮件
!pip3 install zmail
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Requirement already satisfied: zmail in /usr/local/lib/python3.7/site-packages (0.2.7)
import zmail
import pandas as pd
# 邮件的pop设置后的密码
server =zmail.server('你的qq邮箱','POP设置后的密码')
#计算工资
df = pd.read_excel('工资条.xlsx')
df['工资总计'] = df.eval("底薪+奖金+交通补助+餐补")
#群发邮件
for idx, employee in df.iterrows():
#工资条内容
info = template.format(name=employee['姓名'],
gangwei=employee['岗位'],
base=employee['底薪'],
transport=employee['交通补助'],
food=employee['餐补'],
bonus=employee['奖金'],
salary=employee['工资总计'],
familyname=employee['姓名'][0],
company='杭州XX',
date='2019年12月')
#邮件内容
mailcontent ={'subject':'{} 工资条到了, 注意查收!'.format(employee['姓名']),
'content_text': info,
'attachments': 'img/感谢有你.png' }
server.send_mail(employee['邮箱'], mailcontent)
print('{} 的工资条发送成功!'.format(employee['姓名']))
print('\n'*5)
print('ヽ( ̄▽ ̄)و全部通知完成,下班,回家,过元旦~')
运行结果
张三 的工资条发送成功!
李四 的工资条发送成功!
王五 的工资条发送成功!
赵六 的工资条发送成功!
ヽ( ̄▽ ̄)و全部通知完成,下班,回家,过元旦~
运行效果
参考这篇文章 使用zmail群发邮件 设置POP
近期文章
精选课程 | Python数据分析实战(学术)
pandas 1.0最新版本特性抢先看
用python帮你生产指定内容的word文档
Modin:一行代码让pandas加速数十倍
2020年B站跨年晚会弹幕内容分析
综述:文本分析在市场营销研究中的应用
Lazy Prices公司年报内容变动碰上股价偷懒
使用pandas做数据可视化
用statsmodels库做计量分析
YelpDaset: 酒店管理类数据集10+G
NRC词语情绪词典和词语色彩词典
Loughran&McDonald金融文本情感分析库
股评师分析报告文本情感分析预测股价
使用分析师报告中含有的情感信息预测上市公司股价变动
【公开视频课】Python语法快速入门
【公开视频课】Python爬虫快速入门
一行pandas代码生成哑变量
使用Python读取图片中的文本数据
代码不到40行的超燃动态排序图
jupyter notebook代码获取方式,公众号后台回复关键词“20200117”