【指导】:是否每周都要手动给leader发业务邮件,是否每次都需要重复工作,那我们就用Python来设定时限任务吧!(大卫亚设)。
一、编写定时任务脚本的代码
# coding: UTF-8
Import pandas as PD
Import datetime
from sqlalchemy import create _ engine
Import smtplib
From email.header import Header
from email . mime . text import mime text
from email . mime . multipart import mime multipart
from email . mime . application import mime application
Import warnings
warnings . filter warnings(' ignore ')#用于排除警告
Def znf_jxh():
#数据库连接初始化,使用pymysql模块# MySQL的用户:root,密码:123456,端口:3306,数据库:测试
con=create _ engine(' MySQL pymysql ://root :123456 @ 127 . 0 . 0 . 1:3306/test ')
#查询语句,选择表中的所有数据
Sql=''' select day 1,count(distinct a . uid)as ' active ',
count(distinct case when day 2-day 1=1 then a . uid end)第二次保留,
count(distinct case when day 2-day 1=3 then a . uid end)三个保留,
保留7个distinct case when day 2-day 1=7 then a . uid end(count),
concat(distinct case when day 2-day 1=1 then a . uid end)/count(distinct a . uid)* 100,'
concat(count(distinct case when day 2-day 1=3 then a . uid end)/count(distinct a . uid)* 100,'
concat(distinct case when day 2-day 1=7 then a . uid end)/count(distinct a . uid)* 100,'
FROM
(选择uid,date _ format (dayno,' % % y % % m % % d ')as day 1 from aui where app _ name='摄影机
列夫约翰
(选择uid,date _ format (dayno,' % % y % % m % % d ')as day 2 from aui where app _ name='摄影机
ON a.uid=b.uid
by a. day 1组;单击“”
# read_sql_query的两个参数: SQL语句,数据库连接
Df=(sql,con=con)
Print(' '数据读取成功!”)。
df . to _ excel(r ' c :/users/cherich/desktop/分割产品)。“xlsx”,index=False)
Def send_email():
MAIL _ USER=' * * * * * * @ QQ . com ' #邮箱登录名,使用二级QQ邮箱并填写QQ号即可。@qq.com不存在
Mail _ pass=' * * * * * * * * *邮箱验证码,如何获取百度。
Sender=' * * * * * * * * * * * @ qq.com ' #发件人
receivers=[' * * * * * * * * @ QQ . com ']#收件人列表,列表格式
# Chaosong=[' * * * * * * * * @ QQ . com ']#参考列表,列表格式
#设置可以发送附件的mixed对象类型的邮件正文对象
Subject='每天发送销售订单产品分解列表' #邮件主题
Content='发送时间:' str(a) '\n ' '订购时间:从' str(b)'到' str(c) #的邮件摘要
Msg=MIMEMultipart() # mailbody对象。可以在此处添加参数。特别是百度
M (mimetext(内容、“plain”、“utf-8”)
)) # 邮件正文 text/plain # 中文需参数‘utf-8’,单字节字符不需要 msg['subject'] = Header(subject, 'utf-8') # 加入邮件主题 msg['From'] = "{}".format(sender) # 加入邮件发送人 msg['To'] = ",".join(receivers) # 加入邮件接收人 # 加入附件 File2 = r"C:/Users/cherich/Desktop/产品拆分.xlsx" # 如果是定时发送的报表,此处可以写死 attFile = MIMEApplication(open(File2, 'rb').read()) a('Content-Disposition', 'attachment', filename=File2) m(attFile) if __name__ == '__main__': try: # 发送邮件,参数设置 sftp_obj = (host=';, port=465) (mail_user, mail_pass) (sender, receivers, m()) () () print('\nThe email has been sent successfully') except Exception as err: print('\n Email failed to be sent out. Please check !') print(err) if __name__ == '__main__': a = da() # 用于写入邮件正文内容中 b = da() - da(days=6) # 用于写入邮件正文内容中 c = da() - da(days=4) # 用于写入邮件正文内容中 znf_jxh() send_email()二、设置windows定时任务
1.点击开始--点击windows管理工具--点击任务计划程序;
2、点击创建任务--常规--输入任务名称--输入任务描述
3、点击触发器--新建--设置任务时间--点击确认
4、点击操作--新建--浏览--输入程序或脚本路径(你的所在路径)--点击确定
完成!
希望本文的内容对大家的学习或者工作能带来一定的帮助,每天进步一点点,加油。