Чтобы перехватить SIGINT (прерывание сигнала) в Python, вы можете использовать несколько методов в зависимости от ваших требований. Вот несколько различных подходов с примерами кода:
Метод 1: Использование сигнального модуля
import signal
def handle_sigint(signal, frame):
print("SIGINT captured")
# Add your desired actions here
signal.signal(signal.SIGINT, handle_sigint)
# Your main program logic goes here
Метод 2: использование исключения KeyboardInterrupt
try:
while True:
# Your main program logic goes here
pass
except KeyboardInterrupt:
print("SIGINT captured")
# Add your desired actions here
Метод 3. Использование потоков
import signal
import threading
def handle_sigint(signal, frame):
print("SIGINT captured")
# Add your desired actions here
def main_program():
while True:
# Your main program logic goes here
pass
signal.signal(signal.SIGINT, handle_sigint)
# Create a separate thread for the main program
thread = threading.Thread(target=main_program)
thread.start()
# Wait for the thread to finish
thread.join()
Эти методы позволяют перехватывать сигнал SIGINT и выполнять специальные действия, когда пользователь отправляет сигнал прерывания (например, нажав Ctrl+C). Вы можете заменить операторы печати желаемым кодом или действиями.