【python起床服务】

  • 播放起床铃+给老板发邮件辞职
    • pyttsx3 播放音频
      • 1. 播放 mp3 文件
      • 2. 人声读文本
        • 测试系统的语音包
      • 播放音频的代码
    • 发邮件辞职
      • 1. 发送方邮箱开启smtp服务
      • 发邮件的代码
    • 所有代码

播放起床铃+给老板发邮件辞职

之前看师兄做过不关闹钟删本地文件的,我胆不够肥,浅浅给老板辞个职。(开玩笑啦)假期有空来动手实现一下,没想到花了一下午,主要问题出在本人对 python 不熟练。还有用到一些没碰过的 module,但是没关系,最后都实现了。BTW 这个真挺好玩的。

pyttsx3 播放音频

1. 播放 mp3 文件

  • 遇到的问题
    一开始我用了本地的 mp3 文件但是播放失败。
  • 解决方案
    后来发现因为编码的关系,qq 音乐和网易云下载的音频才可以播放。

2. 人声读文本

  • 遇到的问题
    我的文本是粤语的,但是系统的语音包只有普通话和英文的。
  • 解决方案
    因此我得再去下载一份 hk 的语音包,在设置直接找就可以啦。

测试系统的语音包

import pyttsx3engine = pyttsx3.init()
voices = engine.getProperty('voices') for voice in voices:print(voice)


可以看见,此时没有粤语的语音包。咱们去下一个


解决了~ 语音包的编号的话,我这里是新下载的,因此编号是 2(从 0 开始)

播放音频的代码

def alarm():pp = pyttsx3.init()voices = pp.getProperty('voices')pp.setProperty('voice', voices[2].id)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 = Truewhile 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('C:\\Users\\30675\\Desktop\\1.mp3') # # 延迟一分钟在叫一次time.sleep(60)print('时间是 ')print(int(now.strftime("%M"))-int(alarm_minute))playsound('C:\\Users\\30675\\Desktop\\1.mp3')# 再给一分钟机会time.sleep(60)pp.say('快啲起身,我宜家去發email,俾人知你咁懒!')pp.runAndWait()return 1return 1

发邮件辞职

开玩笑啦,我这里就自己发给自己啦

1. 发送方邮箱开启smtp服务

网页版登录 qq 邮箱,在 设置 -> 账户里面

发邮件的代码

def mail_qq():msg_from = 'xxx@qq.com'  # 发送方邮箱passwd = 'xxx'# 就是上面的授权码to = ['xxx@qq.com']# 接受方邮箱# 设置邮件内容# MIMEMultipart类可以放任何内容msg = MIMEMultipart()conntent = "测试"# 把内容加进去msg.attach(MIMEText(conntent, 'plain', 'utf-8'))# 设置邮件主题msg['Subject'] = "这个是邮件主题"# 发送方信息msg['From'] = msg_from# 开始发送# 通过SSL方式发送,服务器地址和端口s = smtplib.SMTP_SSL("smtp.qq.com", 465)# 登录邮箱s.login(msg_from, passwd)# 开始发送s.sendmail(msg_from, to, msg.as_string())print("邮件发送成功")

所有代码

import time
from datetime import datetime
from playsound import playsound
import pyttsx3import smtplib
from email.mime.text import MIMEText# 发送多种类型的邮件
from email.mime.multipart import MIMEMultipartdef alarm():pp = pyttsx3.init()voices = pp.getProperty('voices')pp.setProperty('voice', voices[2].id)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 = Truewhile 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('C:\\Users\\30675\\Desktop\\1.mp3') # # 延迟一分钟在叫一次time.sleep(60)# if(int(now.strftime("%M"))-int(alarm_minute) == 1):print('时间是 ')print(int(now.strftime("%M"))-int(alarm_minute))playsound('C:\\Users\\30675\\Desktop\\1.mp3')# 再给一分钟机会time.sleep(60)pp.say('快啲起身,我宜家去發email,俾人知你咁懒!')pp.runAndWait()return 1return 1def mail_qq():msg_from = 'xxx@qq.com'  # 发送方邮箱passwd = 'xxx'# 就是上面的授权码to = ['xxx@qq.com']# 接受方邮箱# 设置邮件内容# MIMEMultipart类可以放任何内容msg = MIMEMultipart()conntent = "测试"# 把内容加进去msg.attach(MIMEText(conntent, 'plain', 'utf-8'))# 设置邮件主题msg['Subject'] = "这个是邮件主题"# 发送方信息msg['From'] = msg_from# 开始发送# 通过SSL方式发送,服务器地址和端口s = smtplib.SMTP_SSL("smtp.qq.com", 465)# 登录邮箱s.login(msg_from, passwd)# 开始发送s.sendmail(msg_from, to, msg.as_string())print("邮件发送成功")if __name__ == '__main__':a = alarm()if a == 1:# 如果闹钟没关闭就发邮件mail_qq()

【python起床服务】播放起床铃+给老板发邮件辞职相关推荐

  1. python通过outlook发送邮件_python使用两种发邮件的方式smtp和outlook示例

    本篇文章主要介绍了python使用两种发邮件的方式smtp和outlook示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下. smtp是直接调用163邮箱的smtp服务器,需要在163邮箱中设置 ...

  2. Python 自动化办公之 Excel 拆分并自动发邮件

    作者 | 周萝卜 来源 | 萝卜大杂烩 今天我们来分享一个真实的自动化办公案例,希望各位 Python 爱好者能够从中得到些许启发,在自己的工作生活中更多的应用 Python,使得工作事半功倍! 需求 ...

  3. Python自动化办公之Excel拆分并自动发邮件

    今天我们来分享一个真实的自动化办公案例,希望各位 Python 爱好者能够从中得到些许启发,在自己的工作生活中更多的应用 Python,使得工作事半功倍! 需求 需要向大约 500 名用户发送带有 E ...

  4. 计算机毕业设计Python+uniapp音乐播放微信小程序LW(小程序+源码+LW)

    计算机毕业设计Python+uniapp音乐播放微信小程序LW(小程序+源码+LW) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ py ...

  5. python网络开发框架_greenev首页、文档和下载 - Python网络服务框架 - OSCHINA - 中文开源技术交流社区...

    greenev是一个基于greenlet协程,事件驱动,非阻塞socket模型的Python网络服务框架,它使得可以编写同步的代码,却得到异步执行的优点.reactor模式采用基于epoll, kqu ...

  6. python http服务器_超简单的Python HTTP服务

    超如果你急需一个简单的Web Server,但你又不想去下载并安装那些复杂的HTTP服务程序,比如:Apache,ISS等.那么, Python 可能帮助你.使用Python可以完成一个简单的内建 H ...

  7. python 后台服务

    python 后台服务 centos 6x #!/bin/sh # chkconfig: 123456 90 10 # TTS Server for Speech Synthesis # workdi ...

  8. android中服务播放音乐,为什么我们需要Android中的服务?音乐播放也可以通过后台线程完成...

    采访中有人问我这个问题.我不确定这是否是问这个问题的合适论坛,因为它不涉及任何代码,而是对android概念的理解. 问题是"当所有事情都可以通过Android中的后台线程完成时,为什么我们 ...

  9. js调用python接口_JavaScript如何调用Python后端服务

    欢迎关注[无量测试之道]公众号,回复[领取资源], Python编程学习资源干货. Python+Appium框架APP的UI自动化. Python+Selenium框架Web的UI自动化. Pyth ...

最新文章

  1. 手动创建1个基于xml配置的springmvc 项目(without Maven)
  2. 小米11pro和vivox60哪个好
  3. 使用Commons Logging - Java异常处理
  4. 一个我们熟悉的陌生人:多丽丝·莱辛
  5. JAVA 取得当前目录的路径/Servlet/class/文件路径/web路径/url地址
  6. 飞鸽传书2010与AM V6.0 功能比较
  7. 【英语学习】【Daily English】U12 E-World L02 All you have to do is download this taxi app
  8. [UOJ22]外星人
  9. Python并发编程之线程中的信息隔离(五)
  10. 模拟退火 (poj 2420, poj 2069)
  11. 一个定时器的普通实现,多进程实现和多线程实现的对比
  12. dota2 自定义官方服务器,起源2引擎DOTA2重生设置 自定义房间创建
  13. angular6添加子路由_如何将Ionicons添加到Angular 6应用
  14. “敬老孝亲颂家风 做美德传承人”主题实践
  15. 心跳与超时:高并发高性能的时间轮超时器
  16. markdown 不等于
  17. 谷歌 I/O 深度解析:Android Jetpack 最新变化
  18. uniapp调试ESC指令热敏打印机 打印图片 以及 打印途中报10007特性不支持解决方案
  19. 第 16 章 string类和标准模板库
  20. 2021年山东省安全员C证试题及解析及山东省安全员C证作业考试题库

热门文章

  1. 从零开始前端学习[17]:overflow超出是否隐藏的使用方式
  2. [编程题]Shopee的零食柜:二分法(情景题,理解题意很重要)
  3. 开源引领创新,云原生主题论坛资料呈现 | 长沙1024程序员节
  4. PG唯一索引与唯一约束.sql
  5. 思科网络安全 第九章考试答案
  6. vr计算机语言,虚拟现实语言
  7. 【LeetCode成长之路:回文字符串运用题】 回文子串与最长回文子串
  8. 教程丨 一文详尽CatBoost
  9. 名悦集团:汽车保养后行驶更顺滑,是心理作用吗?
  10. 怎样禁止系统的信使服务(转)