如何让Python不等待命令结束?

我正在制作语音助手,当我说“设置闹钟”时,程序冻结并等待闹钟设置的时间。所以在闹钟响起之前我不能和助理说话。

这是代码


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")

如何忽略它或对程序做一些事情以使其不会冻结?也许还有其他设置闹钟的方法?

帮助将不胜感激!


炎炎设计
浏览 126回答 1
1回答

30秒到达战场

您可以创建一个将在指定时间内运行的线程。sleep睡眠线程不会阻塞主线程,所以它会继续执行。import threading, time, osdef thread_func(seconds):    time.sleep(seconds)    os.system("start alarm.mp3")threading.Thread(    target=thread_func,    args=((alarm_time - now).total_seconds(), ),    daemon=True).start()# Do something else hereos.system 将阻止执行,但应该相当快。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python