在python中中断/中断time.sleep()

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (1568)

我需要使用ctrl c从time.sleep()中断。

While 1:
    time.sleep(60)

在上面的代码中,当控件进入time.sleep函数时,需要经过整整60秒才能处理CTRL C

有没有任何优雅的方式来做到这一点。这样即使控制器处于time.sleep功能,我也可以打断

编辑

我在一个遗留实现上测试它,它在Windows 2000上使用python 2.2导致了所有麻烦。如果我使用了更高版本的python CTRL C会中断sleep()。我通过在for循环中调用sleep(1)来快速破解。这暂时解决了我的问题

提问于
用户回答回答于

当用户按下中断键Ctrl-C时,会引发KeyboardInterrupt异常。在python中,这是从SIGINT信号转换而来的。这意味着,您可以使用信号模块处理它:

import signal

def handler(signum, frame):
    print "do whatever, like call thread.interrupt_main()"

signal.signal(signal.SIGINT, handler)

while 1:
    time.sleep(forever)

这样,您可以在收到键盘中断时执行任何操作。

用户回答回答于

扫码关注云+社区

领取腾讯云代金券