当前位置: 首页 > 面试题库 >

无需尝试即可在Python中捕获键盘中断

卢承弼
2023-03-14
问题内容

Python中是否有某种方法可以捕获KeyboardInterrupt事件而不将所有代码放入try-except语句中?

如果用户按下**Ctrl** +,我想干净地退出而没有任何痕迹**C**


问题答案:

是的,您可以使用模块signal安装中断处理程序,并使用threading.Event永远等待:

import signal
import sys
import time
import threading

def signal_handler(signal, frame):
    print('You pressed Ctrl+C!')
    sys.exit(0)

signal.signal(signal.SIGINT, signal_handler)
print('Press Ctrl+C')
forever = threading.Event()
forever.wait()


 类似资料:
  • 问题内容: 例如,使用winamp(至少在Windows上),您可以在后台以winamp播放全屏游戏,并使用媒体按钮*控制声音。Winamp不需要聚焦,可以使游戏继续全屏显示。 我更喜欢用Java编写此代码,但这可能行不通(在Java afaik中很难捕获没有重点的击键),因此任何C#解决方案也都可以。 因此,基本问题是:如何在没有重点的情况下捕获击键? *)我相信“后退/前进/停止/邮件/搜索/

  • 问题内容: 我有一个用Java编写的控制台程序,该程序可以响应单键按下,但是用户不按Enter。 我正在打乒乓球,所以需要上下键来移动蝙蝠的东西。 欢迎使用其他方法!(除了制作GUI外) -编辑: 我将只在UNIX系统(OSX和Linux)上运行程序,因此我可以通过以下方式将终端置于“原始”模式: 当我在运行程序之前在控制台中键入该命令时,它将起作用!但是我需要Java自动执行此操作,因此我尝试了

  • 问题内容: 是否可以在中使用Try-Catch ? 问题答案: 不,这是不可能的。 这仅来自Sql Server 2005 检查TRY … CATCH(Transact-SQL)并检查 其他版本

  • 问题内容: 我开始学习Python,并且编写了一个非常简单的代码来练习try / except。 这是代码: 每当我输入字母作为数字时,除了的打印效果良好,但代码崩溃。 &正在工作,但没有。 我什至将输入放在单独的try / except中,但仍然无法正常工作。 我该如何在实际应用中处理此错误? 问题答案: 在您进入try块之前发生崩溃。如果您输入带有当前代码的字母,它不会在except块中打印错

  • 我真的不知道这个问题。。。 如果数字不正确,块将捕获异常,当我输入-1或0时,它将捕获异常并要求我再次输入数字。。。但如果我键入类似asdasd的内容,它将运行一个无限循环。

  • 我有一个存储过程似乎没有正确记录错误。 代码有错误,但 catch 块似乎未生效。 try块相当长,但错误部分很简单,并且在最后出现,所以我已经对此进行了预测。 proc失败的错误是我们的老朋友“列名或提供的值的数量与表定义不匹配”。我已经修复了这个错误 - 这是一个愚蠢的懒惰错误 - 但我感到困惑为什么我的错误日志记录过程似乎没有工作 - 没有行入到我的 ExtractsErrorLog 表中。