是否有可用的Python模块可以在一定时间后发出警报

时间:2015-06-04 01:57:11

标签: python clock alarm

我的问题和给定问题之间存在显着差异。如果我实现了链接上给出的睡眠(有些人认为我的问题是另一个的重复),那么我的整个应用程序将挂起一段时间。另一方面,我正在寻找一个调度程序,以便我的应用程序不会挂起,但只是在一段时间后运行.wav文件。同时我可以使用我的应用程序做任何事情。希望这是有道理的。

我打算建一个闹钟。我想我可以根据这个算法做到这一点...

  • 使用import serial import numpy as np import matplotlib.pyplot as plt from drawnow import * voltArray = [] count = 0 arduinoData = serial.Serial('/dev/ttyACM0',9600) plt.ion() def makeFig(): plt.title('Stethascope Data') plt.plot(voltArray,'bo-') plt.grid(True) plt.ylabel('Voltage (V)') plt.ylim(0,5) while True: while (arduinoData.inWaiting()==0): #wait here until there is data pass #do nothing arduinoString = arduinoData.readline() print arduinoString try: volt = float(arduinoString) except ValueError: # pass print 'ValueError' print 'Pin Value: ', volt volt = volt*(5.0/1024.0) #arduino reads 0-5V, 10bit resolution #2^10 = 1024, arduino outputs 0-1023 print 'Voltage: ', volt voltArray.append(volt) #append volt value into array drawnow(makeFig) count = count + 1 if (count > 50): voltArray.pop(0) print 'End Loop' print
  • 获取当前时间
  • 将当前时间与给定时间进行比较。
  • 如果当前时间没有给定时间,则继续当前时间并比较当前时间是否是给定时间。
  • 如果当前时间是给定时间,则播放.wav文件。

这个程序的问题是它将持续运行直到给定的时间。所以我在寻找更好的主意。让我们说是否有任何Python模块/类/函数可以在给定时间播放声音文件。是否有任何Python模块/类/函数可以在给定时间内唤醒?或者我的算法通常用于所有闹钟?

2 个答案:

答案 0 :(得分:1)

据我所知,没有一个好的Python模块可以做到这一点。你要找的是cron job。它允许您安排特定脚本在特定时间运行。因此,您的Python脚本最终只会成为播放.wav的代码,然后您需要创建一个cron作业来告诉您的计算机每天在特定时间执行该脚本。

答案 1 :(得分:1)

查看sched模块。

以下是如何使用它的示例:

import sched, time, datetime

def print_time():
    print("The time is now: {}".format(datetime.datetime.now()))

# Run 10 seconds from now
when = time.time() + 10

# Create the scheduler
s = sched.scheduler(time.time)
s.enterabs(when, 1, print_time)

# Run the scheduler
print_time()
print("Executing s.run()")
s.run()
print("s.run() exited")
The time is now: 2015-06-04 11:52:11.510234
Executing s.run()
The time is now: 2015-06-04 11:52:21.512534
s.run() exited