作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 python 中创建了一种交互式命令行。我有这样的事情:
def complete_menu():
while True:
cmd = input('cmd> ')
if cmd == "help":
print('help')
elif cmd == "?":
print('?')
while True
.我现在有这样的事情:
if __name__ == "__main__":
try:
main()
except KeyboardInterrupt:
print('Please use exit to exit')
complete_menu()
最佳答案
更好的方法是注册一个信号处理程序:
import signal
def handler(signum, frame):
print("Please use exit to exit")
# or: just call sys.exit("goodbye")
...
def main():
signal.signal(signal.SIGINT, handler) # prevent "crashing" with ctrl+C
...
if __name__ == "__main__":
main()
KeyboardInterrupt
引发异常,函数
handler
将被执行。这是一个基本示例,自定义处理程序中的代码以执行您想要的操作。
sys.exit
这里。需要更强信号才能杀死的程序很烦人。
关于python - 有没有办法在 python 中的 KeyboardInterrupt 上永不退出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59003438/
我是一名优秀的程序员,十分优秀!