首页 >后端开发 >Python教程 >如何在 Python 中优雅地处理 Ctrl C 中断 (SIGINT)?

如何在 Python 中优雅地处理 Ctrl C 中断 (SIGINT)?

Linda Hamilton
Linda Hamilton原创
2024-12-18 12:00:18211浏览

How Can I Gracefully Handle Ctrl C Interrupts (SIGINT) in Python?

在 Python 中处理 SIGINT 信号

在 Python 中,您可以响应 SIGINT 信号(通过按 Ctrl 生成)C)通过利用 signal.signal 函数。该函数注册一个处理函数,该函数将在收到指定信号时执行。下面是一个示例,演示如何实现与提供的 Perl 代码相同的功能:

import signal
import sys

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

signal.signal(signal.SIGINT, signal_handler)
print('Press Ctrl+C')
signal.pause()

在上面的代码中:

  • signal_handler 是注册的处理函数。当收到 SIGINT 信号时,将调用此函数并打印一条消息以指示按下了 Ctrl C。然后退出脚本。
  • signal.signal 将 signal_handler 函数注册为 SIGINT 的处理程序。
  • print('Press Ctrl C') 向控制台打印一条消息,要求用户按下Ctrl C.
  • signal.pause() 进入事件循环并等待信号传递。当收到 SIGINT 时,执行 signal_handler 函数,然后脚本退出。

此代码提供了一种有效的方法,可以在 Python 中优雅地处理 SIGINT 信号,并在退出脚本之前执行清理操作。

以上是如何在 Python 中优雅地处理 Ctrl C 中断 (SIGINT)?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn