编程语言
首页 > 编程语言> > 15.9 项目:简单的倒计时程序

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

作者:互联网

就像很难找到一个简单的秒表应用程序一样,也很难找到一个简单的倒计时程
序。让我们来写一个倒计时程序,在倒计时结束时报警。总的来说,程序要做到:
•    从 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