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)