我是您的朋友义县游学电子科技,今天我跟大家分享一个小应用。利用python实现一个网络应用,具有定时关机功能和语音报时功能。

下面我先来介绍一下python。python这门语言想必大家都听说过,就算没学习过,大家肯定也或多或少地通过互联网了解过一些。它具有入门简单,开发效率高,用途广泛等特点。您一定对于这几个优点的描述看腻了吧。老实讲,对于python而言它的这几样优点确实是其他语言所不能比拟的。您要是学习过dart语言,您就跟深有体会了。dart与js类似,语法的使用比js还要糟糕。网络上有句话叫"反人类的设计",用在dart身上简直贴切。话说远了,我们还说python。python的语法类似与c++,但是比c++更灵活一些。如果您学习过c++,那肯定很快就入门python了。

但是入门简单不代表深入还简单哦!任何一款编程语言,您学习后用到项目中,就会发现项目中遇到的问题,往往不是编程语言本身而是行业技术的限制或通病。例如您觉得python上手很简单,但让你用python去做一个人工智能应用出来。您肯定犯难!为什么呢?套用我刚说的那句话:项目中遇到的问题,往往不是编程语言本身而是行业技术的限制或通病。编程语言python我们基本掌握了,但为何还是觉得这个人工智能的应用很难呢?问题就在于我们对于人工智能行业和开发思路,思维方式不够了解。这与用什么工具无关,你用c++,c#,go,java同样会面临这样的问题。所以我得出的结论就是,您一定要记好哦。

编程语言就是一种工具入门即可,您更应该学习的是专注该领域的思维方式,解决问题的方法或者思路。只有这样,您在工作中才能得心应手,不至于换个工作环境用另外一种编程语言就蒙圈了不知如何下手了。

言归正传吧!今天这个应用利用了百度的报时api,所以需要联网.下面这个图片是界面。

开始之前我们需要做一些准备工作:

1安装python3.7

2.安装pyqt包,它提供了python的gui界面,安装方式是打开cmd窗口输入pip

install pyqt即可。

3.安装pycharm开发工具。链接大家自行搜索下载

pycharm开发工具

开发环境准备好以后,我先介绍一下思路。首先我们用pyqt做一个界面,界面的模样就是上边运行界面的样子了。下面是我的主函数:其中MainWindow1是pyqt生成的界面类,实例化给w.然后定义了一个1000ms的一个定时器,用于1s显示一次时间(通过w.showtime方法完成的显示)及报时和关机时间的判断。关机时间也是1秒判断一次的。其中多线程主要体现在语音报时功能上和关机时间的倒计时。因为语音报时是单独一个个体因此放入一个单独的进程中,这样在1秒计时的时候不会互相影响,否则会出现语音报时中断的现象。

if __name__ == "__main__":a = QApplication(sys.argv) w = MainWindow1() path='d:/语音'#设置语音保存的路径.每次运行都会删除该目录后重新建立.保证目录下文件的大小 if os.path.exists(path):#判断给定的目录是否存在 shutil.rmtree('d:/语音/')#无需权限的删除目录 os.mkdir('d:/语音/')#创建目录 # timer对象的信号timeout 连接到w对象的lcdtime函数(槽) timer.timeout.connect(w.showtime)#信号槽连接 timer.timeout.connect(w.shutdown) w.timeEdit.editingFinished.connect(w.shutdown_ready) timer.start(1000) w.show() # 可以生成窗口 th = threading.Thread(None, w.speak, '线程1', ('欢迎使用语音报时程序,作者:金元庆',), None) # ('欢迎使用语音报时程序,作者:金元庆',)是w.speak的元祖参数.speak()只有一个参数,所以加逗号 th.start() sys.exit(a.exec_())

下边是showtime方法的内容,是pyqt的一个lcdNumber控件的显示功能:

def showtime(self):self.lcdNumber.display(time.strftime('%H:%M:%S')) # time.strftime('%H:%M:%S')显示时间(时间显示格式)

然后是shutdown()方法内容。这是重点,首先把self.speak方法放入线程1中,方法中主要是实现调用百度语音合成api.当设置好关机时间后按下回车确认,这时开始倒计时,倒计时时间到,会调用window的一个关机命令行命令:

os.system("shutdown -s") # L注销,R重启,s关机

python通过os.syetem(“命令”)来实现调用Windows的命令行命令。

下边代码中的keyPressEvent方法实现了python按键的检测功能,代码中是检测是否按下了回车键和esc键。

我把部分源代码贴出来分享给大家,因为源码太长了,根本没法贴出来。如果有喜爱的朋友可以关注我后私信哦。我把源码发给您。

def shutdown(self):#将语音报时单独放进一个线程,效果和槽调用没啥区别 #th = threading.Thread(None, self.showtime, '线程7', ( ), None) # ()为showtime的参数,为空 #th.start() '''使用datetime显示当前时间 import datetime print(datetime.datetime.now().strftime('%Y,%m,%d,%H,%M,%S') ) ''' #15分钟报时 import time #print(time.localtime())#time.struct_time(tm_year=2016, tm_mon=12, tm_mday=1, tm_hour=20, tm_min=31, tm_sec=41, tm_wday=3, tm_yday=336, tm_isdst=0) if (time.localtime().tm_min%15==0)&(time.localtime().tm_sec==0): #print('每隔15分报时') strtime='当前时间是'+str(+time.localtime().tm_hour)+'时'+str(time.localtime().tm_min)+'分'+str(time.localtime().tm_sec)+'秒'+str(time.localtime().tm_year)+'年'+str(time.localtime().tm_mon)+'月'+str(time.localtime().tm_mday)+'日'+'星期'+str(time.localtime().tm_wday+1)+','+'开发者金元庆' #print(strtime) th = threading.Thread(None, self.speak, '线程1', (strtime,),None) # (1,2)为time1的参数 th.start() import time #print('当前时间',time.localtime()) #print('将给定的秒数转化成距离1970年的时间',time.localtime(40)) #print('当前时间距离1970年的秒数',time.mktime(time.localtime())) #print('当前时间距离1970年的秒数转成时间',time.localtime(time.mktime(time.localtime()))) if (self.bb==1): shut_time=QTime() self.timeEdit_2.setTime(shut_time.fromMSecsSinceStartOfDay(abs(self.timeEdit.time().msecsTo(QTime.currentTime()))))#msecsTo(当前时间)-->返回timedit控件的显示时间到当前时间的毫秒,fromMSecsSinceStartOfDay(毫秒)--->生成一个新的时间对象,并将毫秒转成时间 if (time.strftime('%H:%M:%S') == self.timeEdit.text()): th = threading.Thread(None, self.speak, '线程2', ("用户您好!您已经触发关机事件,20秒后即将关机.按下esc键可取消关机",), None) # (1,2)为time1的参数 th.start() #print("亲爱的用户,你好,你已经触发了关机事件!约10秒后关机") self.cc=2 self.bb=2 #print('当前时间', time.strftime('%H:%M:%S')) # 显示时间 # range(0,10) 0123..9 #for ii in range(10, 0, -1): elif (self.cc==2 )& (self.dd<3)&(abs(QTime.currentTime().msecsTo( self.timeEdit.time()))>20000): self.dd = self.dd + 1 print("倒计时:",self.dd, "秒") th = threading.Thread(None, self.speak, '线程3', ("倒计时"+str(self.dd)+"秒",), None) # (1,2)为time1的参数 th.start() th.join(1.5) elif self.dd==3: self.dd=0 self.cc=0 #timer.timeout.disconnect(self.shutdown) th = threading.Thread(None, self.speak, '线程4', ("关机",), None) # (1,2)为time1的参数 th.start() print("关机") #sys.exit() # 退出程序,下边的语句不执行 #os.system("shutdown -s") # L注销,R重启,s关机 #def paintEvent(self, QPaintEvent): # print('设置时间', self.timeEdit.text()) # 读取timeedit的设置的时间 #print('当前时间', time.strftime('%H:%M:%S')) # 显示时间def keyPressEvent(self, KeyEvent): if KeyEvent.key() == Qt.Key_Escape: # key_escape是qt的esc按键常量 参考http://doc.qt.io/qt-5/qt.html#Key-enum th = threading.Thread(None, self.speak, '线程5', ("您取消了关机",), None) # (1,2)为time1的参数 th.start() #print('esc键,您取消了关机!') self.dd = 0#停止关机动作 self.cc = 0#cc停止倒计时数秒 #sys.exit() # 退出程序,下边的语句不执行 if KeyEvent.key() == Qt.Key_Enter: self.bb=1 th = threading.Thread(None, self.speak, '线程6', ("您设置了自动关机时间",), None) # (1,2)为time1的参数 th.start()

python报时功能_python3多线程实现一个语音报时,定时关机功能的应用相关推荐

  1. python发音机器人_Python3从零开始搭建一个语音对话机器人

    目录 01-初心缘由 最近在研究语音识别方向,看了很多的语音识别的资料和文章,了解了一下语音识别的前世今生,其中包含了很多算法的演变,目前来说最流行的语音识别算法主要是依赖于深度学习的神经网络算法,其 ...

  2. python定时开关机的代码_利用Python实现Windows定时关机功能

    是最初的几个爬虫,让我认识了Python这个新朋友,虽然才刚认识了几天,但感觉有种莫名的默契感.每当在别的地方找不到思路,总能在Python找到解决的办法.自动关机,在平时下载大文件,以及跑程序的时候 ...

  3. 一个晚上十点定时关机程序

    一个晚上十点定时关机程序 方法1:考虑使用批处理文件,建立一个shut.bat文件,打开记事本编辑以下内容: :loop timeout 10 set hour=%time:~0,2% if %hou ...

  4. Qt6-网络关机助手(开机自启版)新增定时关机功能

    https://blog.csdn.net/z609932088/article/details/113957407 接上一个版本,这个版本中新增了定时关机功能.同时已更换成了公司的LOGO,如下图所 ...

  5. Windows XP自带的定时关机功能以及我的基于此的小程序

    (2008-06-30 15:55 博客搬家拾遗) 不知道你有没有遇到过这种情况:     吃晚饭时开始全盘扫描,到睡觉之前还显示要再有3个小时才能杀完,可是杀毒软件没有"扫描完毕自动关机选 ...

  6. Win7的定时关机功能(计划任务+shutdown.exe实现)

    Win7 本身自带的任务计划程序就可以实现丰富的定时任务功能,这里只谈论定时关机这个小功能. ①开始/所有程序/附件/系统工具/任务计划程序   打开 ②在右边的操作中选择"创建基本任务&q ...

  7. python 线程锁_Python3多线程执行任务含线程同步锁

    Python启动多线程执行任务,用线程锁实现同步分配任务,最后等待所有线程执行完毕#python3多线程演示 import threading import random import time to ...

  8. ai图像识别python的项目_Python3调用百度AI识别图片中的文字功能示例【测试可用】...

    本文实例讲述了Python3调用百度AI识别图片中的文字功能.分享给大家供大家参考,具体如下: 首先pip install命令安装baidu-aip模块,如下图所示(这里使用pip3 install ...

  9. python实现滑块验证功能_python3.8.1+selenium实现登录滑块验证功能

    python3.8.1+selenium解决登录滑块验证的问题,先给大家分享一个效果图,感觉不错,可以参考实现代码. 这里的滑块是qq邮箱的截图,如图所示,可以作为同类滑块验证的参考. "& ...

最新文章

  1. IT 巡检内容、工具、方法 amp; Linux / AIX / Oracle / VMware 巡检表模板 | 周末送资料...
  2. 离散时间系统的相位响应
  3. python3精要(32)-生成器表达式
  4. kbmmw 5.06.00 beta 发布
  5. NLP十大研究方向Highlights!
  6. 云图说丨不同区块链之间如何跨链交互?
  7. MySQL修改my.cnf配置不生效的解决方法
  8. Java中long和Long有什么区别(转)
  9. 双十一淘宝、京东服务器瘫痪大揭秘 感悟
  10. H3C 无线控制器关闭信号认证
  11. 二维码内置图片,并且把二维码放在图片指定位置上,画字,设置字本地样式,二维码批量生成
  12. 书摘---创业36条军规2:创业的三大条件
  13. 脱口而出的 “ 感谢的语言 ”
  14. 一篇很好的《数据分析》文章
  15. 包含新房二手房租房功能的房产小程序开发方案
  16. 互联网红利之道-流量变现
  17. codewars(二)
  18. 2019牛客多校训练营第一场 E题 ABBA 题解
  19. 微信好友删除了怎么找回来?
  20. Facebook/atc环境搭建总结

热门文章

  1. 多因素身份认证 (MFA) 插件:手机验证码认证因素配置流程
  2. linux查看硬件PCI设备,Linux系统查看硬件信息神器,比pci设备好用100倍!
  3. 零基础学Python--------第4章 序列的应用
  4. 配置suse自动化安装
  5. 微软2022校招福袋揭秘!
  6. 【实验3】——目标的分辨能力
  7. 云计算技术基础 第2章 云计算的架构及国内外标准化情况(2)
  8. PyG文档之二:快速入门
  9. linux scp将服务器上的文件下载到本地
  10. 测试---APP测试