如何捕获 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 的主函数中执行条件? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

cmd模块:捕获Ctrl + C [重复]

使用 Spyder 3.3 无法在 input() 中捕获 Ctrl+C

[python]捕获ctrl+C事件后处理

如何使用 PyQt 在 python 应用程序中处理 Ctrl+C?

在阻塞 boost c++ 方法中,如何在 Python 中捕获中断信号?

如何在 C# 控制台应用程序中捕获 ctrl-c (SIGINT)