【发布时间】:2020-07-15 12:02:36
【问题描述】:
我正在制作一个语音助手,当我说“设置闹钟”时,程序会冻结并等待闹钟设置的时间。所以在闹钟响起之前我无法与助手通话。
这是代码
if 'alarm' in said:
engine.say('Set')
engine.runAndWait()
now = datetime.datetime.now()
alarm_time = datetime.datetime.combine(now.date(), datetime.time(int(said)))
time.sleep((alarm_time - now).total_seconds())
os.system("start alarm.mp3")
如何忽略它或对程序进行一些操作以使其不会冻结?也许还有其他设置闹钟的方法?
我们将不胜感激!
【问题讨论】:
-
这能回答你的问题吗? How to start a background process in Python?
-
使用
subprocess模块,而不是os.system。 -
@chepner 你是说这个吗?
os.system("start alarm.mp3") -
是的。
p = subprocess.Popen(["start", "alarm.mp3"])立即返回,在后台运行命令。 -
不,它不起作用
标签: python datetime time alarm assistant