为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

炎炎设计 2023-03-08 15:02:25
我正在制作语音助手,当我说“设置闹钟”时,程序冻结并等待闹钟设置的时间。所以在闹钟响起之前我不能和助理说话。这是代码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")如何忽略它或对程序做一些事情以使其不会冻结?也许还有其他设置闹钟的方法?帮助将不胜感激!
查看完整描述

1 回答

?
30秒到达战场

TA贡献1828条经验 获得超6个赞

您可以创建一个将在指定时间内运行的线程。sleep睡眠线程不会阻塞主线程,所以它会继续执行。


import threading, time, os


def 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 here

os.system 将阻止执行,但应该相当快。


查看完整回答
反对 回复 2023-03-08
  • 1 回答
  • 0 关注
  • 125 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信