python 自动化:调取接口获取每日数据并写入xls,添加附件并发送email
2018-01-25 16:30
609 查看
import requests import xlrd from xlutils.copy import copy import smtplib from email.mime.application import MIMEApplication from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart import time import datetime def send_email(list) msg = MIMEMultipart() #创建容器 msg['to'] = "xxxx@qq.com,xxxx@qq.com" #发送给 msg['Cc'] = "xxxx@qq.com,xxxx@qq.com" #抄送 msg['from'] = 'xxxxxx@qq.com' #发送者 msg['subject'] = '每日数据统计' #标题 puretext = MIMEText(list[1]) #创建邮件主题 msg.attach(puretext) #把主题添加到容器 xlsxpart = MIMEApplication(open(list[0], 'rb').read()) xlsxpart.add_header('Content-Disposition', 'attachment', filename='123.xls') msg.attach(xlsxpart) try: server = smtplib.SMTP_SSL('smtp.qq.com', 465) server.login('xxxxxx', 'xxxxxxxxx') #用户名,密码 server.sendmail(msg['from'], msg['to'].split(",") + msg['Cc'].split(","), msg.as_string()) #发送 server.quit() print("邮件发送成功") time.sleep(5) except Exception as e: print('完蛋了,%s' % e) def write_excle(): data = requests.post("http://ip/").json() book = xlrd.open_workbook("/home/python3/sjtj/0124.xls") new_book = copy(book) sheet = new_book.get_sheet(0) name = str(datetime.date.today() - datetime.timedelta(days=1)) list = [] newName = "/home/python3/sjtj/ " + name + ".xls" list.append(newName) for value in data.values(): index = 0 for key in value: sheet.write(2 + index, 0, key["createTime"]) # 统计时间 sheet.write(2 + index, 1, key["xzpv"]) # 当日新增PV sheet.write(2 + index, 2, key["xzuv"]) # 当日新增UV sheet.write(2 + index, 3, key["xzxz"]) # 当日新增下载用户 sheet.write(2 + index, 4, key["xztg0"]) # 热门小说 sheet.write(2 + index, 5, key["xztg1"]) # 金典美文 sheet.write(2 + index, 6, key["xztg"]) # 合计 sheet.write(2 + index, 7, key["xzvoteCount0"]) # 热门小说 sheet.write(2 + index, 8, key["xzvoteCount1"]) # 金典美文 sheet.write(2 + index, 9, key["xzvoteCount"]) # 合计 sheet.write(2 + index, 10, key["xzshareNum1"]) # 活动首页 sheet.write(2 + index, 11, key["xzshareNum2"]) # 个人首页 sheet.write(2 + index, 12, key["xzshareNum3"]) # 详情页 sheet.write(2 + index, 13, key["xzshareNum"]) # 合计 sheet.write(2 + index, 14, key["xzplayCount0"]) # 热门小说 sheet.write(2 + index, 15, key["xzplayCount1"]) # 金典美文 sheet.write(2 + index, 16, key["xzplayCount"]) # 合计 index += 1 key1 = value[-1] key2 = value[-2] conntion = "趣朗读每日数据情况:\n昨日新增PV:" + str(key2["xzpv"]) + ",UV" + str(key2["xzuv"]) + ",投稿数" + str(key2["xztg"]) + \ ",投票数" + str(key2["xzvoteCount"]) + ",分享数" + str(key2["xzshareNum"]) + ",下载用户" + str(key2["xzxz"]) + \ "\n截止昨日,累计PV:" + str(key1["xzpv"]) + ",UV" + str(key1["xzuv"]) + ",投稿数" + str(key1["xztg"]) + \ ",投票数" + str(key1["xzvoteCount"]) + ",分享数" + str(key1["xzshareNum"]) + ",下载用户" + str(key1["xzxz"]) list.append(str(conntion)) new_book.save(newName) return list //定时器 def timeRUN(): index = 0 ntime = datetime.datetime(2018, 2, 1, 8, 00) while True: now = str(datetime.datetime.now()) now = now.split(".")[0] now = datetime.datetime.strptime(now, '%Y-%m-%d %H:%M:%S') if now == ntime: list = write_excle() print("文件读写成功,开始发送邮件") send_email(list) index = 1 else: if index == 1: ntime = ntime + datetime.timedelta(days=1) index = 0 print("下次发送时间是:" + str(ntime)) while True: try: timeRUN() except Exception as e: print(e) time.sleep(10)
相关文章推荐
- python自动化email发送和添加附件
- Python获取Mysql数据并Mail(多个附件的添加)
- python获取接口数据,写入文件
- 【整理】Python中,添加写入数据到已经存在的Excel的xls文件,即打开excel文件,写入新数据
- Python 获取接口数据,解析JSON,写入文件
- Python 获取接口数据,解析JSON,写入文件
- Python中,添加写入数据到已经存在的Excel的xls文件,即打开excel文件,写入新数据
- Python中,添加写入数据到已经存在的Excel的xls文件,即打开excel文件,写入新数据
- nodejs调用接口,并把接口数据通过邮件发送(可添加附件)
- python调用http接口,数据写入mysql数据库并下载录音文件
- Python爬虫-爬取集思录的金融信息,并写入文件和检测数据变化发送邮件通知
- [置顶] 【python 数据报表】发送带有样式和附件的邮件
- Windows下python发送邮件_CustomEmail.py[text、html、附件、读取文本到正文]
- Python自动发送邮件并添加附件的主程序
- python 调用航空公司的接口 获取机票数据 api简单案例
- Python每日练习 14 15 16 将某txt的内容写入到xls文件中
- Jira平台数据自动化获取(一)--Jira接口请求
- Python接口自动化--post提交的四种数据类型 4
- Python3.5 email发送邮件,包含txt、图片、HTML、附件
- Python发送多个附件和支持HTML及纯文本内容的 Email 实现