您现在所在的位置:首页 >关于奇酷 > 行业动态 > 假期总有勇士不愿早起?!可能你缺一个炸裂的起床方式!

假期总有勇士不愿早起?!可能你缺一个炸裂的起床方式!

来源:奇酷教育 发表于:

假期总有勇士不愿早起?!可能你缺一个炸裂的起床方式!

  手机定闹钟五个起步
  仍有勇士不愿早起!
  有没有觉得
  假期起床是一件超级可怕的事情
  正所谓手机配床地久天长
  
 
  等等
  可能你需要一个
  炸裂的起床方式——
  至尊版Python叫醒服务!!!
  
 
  首先看一下
  Python叫醒服务使用的模块
  模块中用到的import pyttsx3
  是一个文字朗读模块
  一会我们将要用到
  import time
  from datetime import datetime
  from playsound import playsound#用来播放铃声的
  import pyttsx3
  接下来
  我们设置闹钟的的预定时间
  alarm_time = input("输入要设置的闹钟时间:HH:MM:SS\n")
      alarm_period=input("请输入要设置的时期(AM或PM):\n")
      alarm_hour=alarm_time[0:2]#获取小时
      alarm_minute=alarm_time[3:5]#获取分钟
      alarm_seconds=alarm_time[6:8]#多少秒
      alarm_period = alarm_period.upper()
       print("设置成功正在运行,祝您休息愉快....zzZZ..")
 
  为了配合Python叫醒服务的场景
  此处应该有个音乐

 
  试着让程序跑一下
      while flag:
          now = datetime.now()
          current_hour = now.strftime("%I")
          current_minute = now.strftime("%M")
          current_seconds = now.strftime("%S")
          current_period = now.strftime("%p")
          if(alarm_period==current_period):
              if(alarm_hour==current_hour):
                  if(alarm_minute==current_minute):
                      if(alarm_seconds==current_seconds):
                          print("Wake Up!!!")
                          playsound('1.mp3') ## 铃声名字最好不要带中文,会节码失败
                          if(int(now.strftime("%M"))-int(alarm_minute)==10):#延迟十分钟在叫一次
                              playsound('1.mp3')
                              time.sleep(60)
                              pp.say('还不醒?那你可别怪我了都是为你好呀。这就去帮你辞职!哈哈哈哈')
                              pp.runAndWait()
  
  要想闹钟定的好
  此处应该有大招
  原理很简单
  就是假定不起床
  就发封邮件分手或辞职
  
  这里我们用到Python SMTP发送邮件
  import smtplib
  smtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] )
  参数说明:
  host: SMTP 服务器主机。你可以指定主机的ip地址或者域名如: runoob.com,这个是可选参数。
  port: 如果你提供了 host 参数, 你需要指定 SMTP 服务使用的端口号,一般情况下 SMTP 端口号为25。
  local_hostname: 如果 SMTP 在你的本机上,你只需要指定服务器地址为 localhost 即可。
  Python SMTP 对象使用 sendmail 方法发送邮件,语法如下:
  SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options])
  参数说明:
  from_addr: 邮件发送者地址。
  to_addrs: 字符串列表,邮件发送地址。
  msg: 发送消息
  这里要注意一下第三个参数,msg 是字符串,表示邮件。我们知道邮件一般由标题,发信人,收件人,邮件内容,附件等构成,发送邮件的时候,要注意 msg 的格式。这个格式就是 smtp 协议中定义的格式
  因为要用QQ邮箱smtp服务发送邮件
 
  所以要获取授权码
  找到QQ邮箱
  第一步
  
 
  第二步
  
  第三步
  
  第四步
  
  让代码跑一下
  my_sender = '2073969408@qq.com'  # 发件人邮箱账号
      my_pass = '***'  # 授权码
      my_user = '2073969408@qq.com'  # 收件人邮箱账号,我这边发送给自己
      def mail():
          ret = True
          try:
              msg = MIMEText('想睡觉,不干了', 'plain', 'utf-8')  # 填写内容
              msg['From'] = formataddr(["我是奇小酷", my_sender])  # 括号里的对应发件人邮箱昵称、发件人邮箱账号
              msg['To'] = formataddr(["奇小酷", my_user])  # 括号里的对应收件人邮箱昵称、收件人邮箱账号
              msg['Subject'] = "辞职报告"  # 邮件的主题,也可以说是标题你也可以写成分手报告
              server = smtplib.SMTP_SSL("smtp.qq.com", 465)  # 发件人邮箱中的SMTP服务器
              server.login(my_sender, my_pass)  # 括号中对应的是发件人邮箱账号、邮箱密码
              server.sendmail(my_sender, [my_user, ], msg.as_string())  # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
              server.quit()  # 关闭连接
          except Exception:  # 如果 try 中的语句没有执行,则会执行下面的 ret=False
              ret = False
          return ret
      ret = mail()
      if ret:
          print("邮件发送成功")
      else:
          print("邮件发送失败")
  一切准备就绪
  坐等闹钟
  (ps.贴出全部代码)
  import time
  from datetime import datetime
  from playsound import playsound
  import pyttsx3
  import smtplib
  from email.mime.text import MIMEText
  from email.utils import formataddr
  def alarm():
      pp = pyttsx3.init()
      alarm_time = input("输入要设置的闹钟时间:HH:MM:SS\n")
      alarm_period=input("请输入要设置的时期(AM或PM):\n")
      alarm_hour=alarm_time[0:2]#获取小时
      alarm_minute=alarm_time[3:5]#获取分钟
      alarm_seconds=alarm_time[6:8]#多少秒
      alarm_period = alarm_period.upper()
      print("设置成功正在运行,祝您休息愉快....zzZZ..")
      flag=True
      while flag:
          now = datetime.now()
          current_hour = now.strftime("%I")
          current_minute = now.strftime("%M")
          current_seconds = now.strftime("%S")
          current_period = now.strftime("%p")
          if(alarm_period==current_period):
              if(alarm_hour==current_hour):
                  if(alarm_minute==current_minute):
                      if(alarm_seconds==current_seconds):
                          print("Wake Up!!!")
                          playsound('1.mp3') ## 铃声名字最好不要带中文,会节码失败
                          if(int(now.strftime("%M"))-int(alarm_minute)==10):#延迟十分钟在叫一次
                              playsound('1.mp3')
                              time.sleep(60)
                              pp.say('还不醒?那你可别怪我了都是为你好呀。这就去帮你辞职!哈哈哈哈')
                              pp.runAndWait()
      return 1
  def mail_qq():
      my_sender = 'xxxxx@qq.com'  # 发件人邮箱账号
      my_pass = '***'  # 授权码
      my_user = 'xxxxxxx@qq.com'  # 收件人邮箱账号,我这边发送给自己
      def mail():
          ret = True
          try:
              msg = MIMEText('想睡觉,不干了', 'plain', 'utf-8')  # 填写内容
              msg['From'] = formataddr(["奇小酷", my_sender])  # 括号里的对应发件人邮箱昵称、发件人邮箱账号
              msg['To'] = formataddr(["奇小酷", my_user])  # 括号里的对应收件人邮箱昵称、收件人邮箱账号
              msg['Subject'] = "辞职报告"  # 邮件的主题,也可以说是标题你也可以写成分手报告
              server = smtplib.SMTP_SSL("smtp.qq.com", 465)  # 发件人邮箱中的SMTP服务器
              server.login(my_sender, my_pass)  # 括号中对应的是发件人邮箱账号、邮箱密码
              server.sendmail(my_sender, [my_user, ], msg.as_string())  # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
              server.quit()  # 关闭连接
          except Exception:  # 如果 try 中的语句没有执行,则会执行下面的 ret=False
              ret = False
          return ret
      ret = mail()
      if ret:
          print("邮件发送成功")
      else:
          print("邮件发送失败")
  if __name__ == '__main__':
      a=alarm()
      if a==1:#如果闹钟没关闭就发邮件
          mail_qq()
  。
  。
  。
  本文温馨提示
  非重度起床困难户
  谨慎使用
  (本文完)