如何捕获 CTRL+C 并在 python 的主函数中执行条件? [复制]
Posted
技术标签:
【中文标题】如何捕获 CTRL+C 并在 python 的主函数中执行条件? [复制]【英文标题】:How can I capture CTRL+C and execute a condition inside my main function in python? [duplicate] 【发布时间】:2018-05-16 19:25:45 【问题描述】:我搜索了与此相关的答案,但没有找到任何答案。我正在为 P2P 网络编写一个套接字程序,我需要为其合并一些信号处理。
如果我在运行程序时按 CTRL+C,程序应该向另一个对等方发送“LEAVE”请求。
伪代码:
if conditionX
dosomething(IP, port)
if conditionY
dosomethingelse(IP, port)
if SIGINT detected
sendleaverequest(peerip, port)
如何在这里实现信号处理?
【问题讨论】:
【参考方案1】:CTRL-C 是操作系统的信号之一。您可以使用包括信号库或模块在内的编程语言处理信号。
对于Python你可以使用系统模块,如果你处理signal.SIGINT
,你可以在按下CTRL-C
时执行你自己的代码。
前面问题的示例用法:
访问: How do I capture SIGINT in Python?
【讨论】:
以上是关于如何捕获 CTRL+C 并在 python 的主函数中执行条件? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
使用 Spyder 3.3 无法在 input() 中捕获 Ctrl+C
如何使用 PyQt 在 python 应用程序中处理 Ctrl+C?