对python捕获ctrl+c手工中断程序的两种方法详解

  • Post category:Python

在Python中,我们可以使用两种方法来捕获Ctrl+C手工中断程序,分别是使用signal模块和使用try-except语句。本文将为您详细讲解这两种方法的实现原理和使用方法,并提供两个示例说明。

使用signal模块捕获Ctrl+C手工中断程序

signal模块是Python中用于处理信号的模块,我们可以使用它来捕获Ctrl+C手工中断程序。以下是使用signal模块捕获Ctrl+C手工中断程序的示例代码:

import signal
import time

def handler(signum, frame):
    print('You pressed Ctrl+C!')
    exit()

signal.signal(signal.SIGINT, handler)

while True:
    print('Running...')
    time.sleep(1)

在上面的代码中,我们定义了一个handler函数,它会在捕获到Ctrl+C信号时被调用。在主程序中,我们使用signal模块的signal函数来注册handler函数,当捕获到Ctrl+C信号时,程序会执行handler函数中的代码。

使用try-except语句捕获Ctrl+C手工中断程序

除了使用signal模块,我们还可以try-except语句来捕获Ctrl+C手工中断程序。以下是使用try-except语句捕获Ctrl+C手工中断程序的示例代码:

import time

try:
    while True:
        print('Running...')
        time.sleep(1)
except KeyboardInterrupt:
    print('You pressed Ctrl+C!')
    exit()

在上面的代码中,我们使用try-except语句来捕获KeyboardInterrupt异常,当捕获到该异常时,程序会执行except语句中的代码。

总结

本文为您详细讲解了Python中捕获Ctrl+C手工中断程序的两种方法,分别是使用signal模块和使用try-except语句。通过学习本文,您可以更好地掌握Python中捕获Ctrl+C手工中断程序的实现方法,提高自己的编程技能。