ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

15.9 项目:简单的倒计时程序

2022-01-01 13:03:01  阅读:203  来源: 互联网

标签:countdown 15.9 程序 应用程序 subprocess 倒计时 time 声音文件


就像很难找到一个简单的秒表应用程序一样,也很难找到一个简单的倒计时程
序。让我们来写一个倒计时程序,在倒计时结束时报警。总的来说,程序要做到:
•    从 60 倒数。
•     倒数至 0 时播放声音文件(alarm.wav)。这意味着代码将需要做到以下几点:
•    在显示倒计时的每个数字之间,调用 time.sleep()暂停一秒。
•    调用 subprocess.Popen(),用默认的应用程序播放声音文件。打开一个新的文件编辑器窗口,并保存为 countdown.py。

第 1 步:倒计时
这个程序需要 time 模块的time.sleep()函数,subprocess 模块的 subprocess.  Popen()
函数。输入以下代码并保存为 countdown.py:

#!  python3
#  countdown.py  -  A  simple  countdown  script. import  time,  subprocess
➊  timeLeft  =  60
while  timeLeft  >  0:
➋            print(timeLeft,  end='')
➌            time.sleep(1)
➍            timeLeft  =  timeLeft  -  1

#  TODO:  At  the  end  of  the  countdown,  play  a  sound  file.

导入 time 和 subprocess 后,创建变量 timeleft,保存倒计时剩下的秒数➊。它从 60 开始,或者可以根据需要更改这里的值,甚至通过命令行参数设置它。
在 while 循环中,显示剩余次数➋,暂停一秒钟➌,再减少 timeleft 变量的值➍,然后循环再次开始。只要 
timeleft 大于 0,循环就继续。在这之后,倒计时就结束了。

第 2 步:播放声音文件
虽然有第三方模块,播放各种声音文件,但快速而简单的方法,是启动用户使

用的任何播放声音文件的应用程序。操作系统通过.wav 文件扩展名,会弄清楚应该启动哪个应用程序来播放该文件。这个.wav  文件很容易变成其他声音文件格式,如.mp3 或.ogg。
可以使用计算机上的任何声音文件,在倒计时结束播放,也可以从 http://nostarch. com/automatestuff/下载 alarm.wav。
在程序中添加以下代码:
#!  python3
#  countdown.py  -  A  simple  countdown  script. import  time,  subprocess
--snip--

#  At  the  end  of  the  countdown,  play  a  sound  file. subprocess.Popen(['start',  
'alarm.wav'],  shell=True)

while  循环结束后,alarm.wav(或你选择的声音文件)将播放,通知用户倒计时结束。在 Windows 上,要确保传入 Popen()的列表中包含'start',并传入关键字参数 
shell=True。在 OS X 上,传入'open',而不是'start’,并去掉 shell=True。
除了播放声音文件之外,你可以在一个文本文件中保存一条消息,例如 Break time is  over!。然后在倒计时结束时用 
Popen()打开它。这实际上创建了一个带消息的弹出窗口。或者你可以在倒计时结束时,用webbrowser.open()函数打开特定网站。不像在网上找到的一些免费倒计时应用程序,你自己的倒计时程序的警
报可以是任何你希望的方式!

第 3 步:类似程序的想法
倒计时是简单的延时,然后继续执行程序。这也可以用于其他应用程序和功能,诸如:
•    利用 time.sleep()给用户一个机会,按下 Ctrl-C 取消的操作,例如删除文件。你的程序可以打印“Press  Ctrl-C  to  cancel”,然后用 
try 和 except 语句处理所有 KeyboardInterrupt 异常。
•    对于长期的倒计时,可以用 timedelta 对象来测量直到未来某个时间点(生日?周年纪念?)的天、时、分和秒数。

小结
对于许多编程语言,包括 Python,Unix 纪元(1970 年 1 月 1 日午夜,UTC)

是一个标准的参考时间。虽然 time.time()函数模块返回一个 Unix 纪元时间戳(也就是自 Unix 纪元以来的秒数的浮点值),但 datetime 模块更适合执行日期计算、格


式化和解析日期信息的字符串。
time.sleep()函数将阻塞(即不返回)若干秒。它可以用于在程序中暂停。但如果想安排程序在特定时间启动,http://nostarch.com/automatestuff/上的指南可以告诉你如何
使用操作系统已经提供的调度程序。
threading 模块用于创建多个线程,如果需要下载多个文件或同时执行其他任务,这非常有用。但是要确保线程只读写局部变量,否则可能会遇到并发问题。
最后,Python 程序可以用 subprocess.Popen()函数,启动其他应用程序。命令行参数可以传递给 Popen()调用,用该应用程序打开特定的文档。另外,也可以用 Popen()启动 
start、open 或 see 程序,利用计算机的文件关联,自动弄清楚用来打开文件的应用程序。通过利用计算机上的其他应用程序,Python 程序可以利用它们的能力,满足你的自动化需求。
 

标签:countdown,15.9,程序,应用程序,subprocess,倒计时,time,声音文件
来源: https://blog.csdn.net/china365love/article/details/122266780

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有