python锁屏后就无法模拟键盘_为什么我不能用python处理键盘中断?

不幸的是,异步异常处理是不可靠的(由信号处理程序引发的异常、通过C API的外部上下文等)。如果代码中有一些关于捕获异步异常的协调,您可以增加正确处理异步异常的机会(除了非常关键的函数之外,调用堆栈中可能的最高值似乎是合适的)。

被调用的函数(dostuff)或堆栈后面的函数本身可能有一个catch for KeyboardInterrupt或BaseException,而您没有/无法解释这个catch。

对于Python2.6.6(x64)interactive+Windows7(64位),这个简单的例子工作得很好:>>> import time

>>> def foo():

... try:

... time.sleep(100)

... except KeyboardInterrupt:

... print "INTERRUPTED!"

...

>>> foo()

INTERRUPTED! #after pressing ctrl+c

编辑:

经过进一步调查,我尝试了我认为是其他人用来重现这个问题的例子。我很懒,所以我把“最后”这个词漏掉了>>> def foo():

... try:

... sys.stdin.read()

... except KeyboardInterrupt:

... print "BLAH"

...

>>> foo()

这在按下CTRL+C后立即返回。当我立即再次尝试调用foo时发生了有趣的事情:>>> foo()

<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值