Python에서 SIGINT 신호를 잡는 방법은 무엇입니까?

PHPz
풀어 주다: 2023-09-17 10:29:02
앞으로
1005명이 탐색했습니다.

Python에서 SIGINT 신호를 잡는 방법은 무엇입니까?

이 기사에서는 Python에서 SIGINT를 잡는 방법과 잡은 후 수행해야 할 작업에 대해 알아봅니다.

신호를 받은 후 신호 모듈은 특정 작업을 수행합니다. 이 외에도 SIGINT를 사용하여 키보드를 통해 사용자 인터럽트를 캡처할 수도 있습니다.

필수 모듈

신호 모듈

용어 "신호" 는 프로그램이 운영 체제로부터 정보를 받을 수 있는 프로세스를 의미합니다. 또한 운영 체제가 특정 이벤트를 감지하면 신호가 프로그램으로 전송됩니다. 신호 모듈은 터미널에서 다음 명령을 실행하여 설치할 수 있습니다. -

으아아아

시스템 모듈

Python의 sys 모듈은 Python 실행 환경의 다양한 부분을 변경하는 여러 함수와 변수를 제공합니다. sys 모듈은 다음 명령을 사용하여 설치할 수 있습니다 -

으아아아

시간 모듈

Python의 시간 모듈을 사용하면 사용자가 시간을 조작하고 시간에 대한 정보를 기록할 수 있습니다. 시간 모듈은 일반적으로 Python과 함께 사전 설치되어 제공되므로 설치할 필요가 없습니다. 하지만 그렇지 않은 경우 아래 명령을 사용하여 설치할 수 있습니다. 으아아아

Python에서 SIGINT 캡처 구현을 단계별로 소개하겠습니다.

단계별 구현

1단계: 라이브러리 가져오기

먼저

import 키워드를 사용하여 필요한 모든 라이브러리를 가져와야 합니다. signal, sys 및 sleep 라이브러리가 그중 하나입니다. 으아아아

2단계: 함수 만들기

이제 두 개의 인수를 허용하여 키보드 중단 시 호출되는 함수를 만듭니다. 이 경우 매개변수는

sigframe으로 간주됩니다. 으아아아

3단계: 사용자 정의 핸들러 정의

여기서는 signal.signal() 함수를 사용하여 신호가 수신될 때 호출되어야 하는 사용자 정의 핸들러를 정의합니다. 또한 키보드에서

Ctrl+C 또는 Ctrl+F2을 입력하여 인터럽트를 발생시키는 signal.SIGINT를 정의합니다. 으아아아

4단계: 무작위 메시지 인쇄

다음으로, 키보드가 중단될 경우 사용자에게 어떻게 해야 하는지 알려주는 임의의 메시지 몇 줄을 인쇄합니다.

으아아아

5단계: 수면 시간 설정

마지막으로 Python 절전 시간을 임의의 초 단위로 설정합니다.

으아아아

주의

이 프로그램에는 문제가 있습니다. Windows에서 실행하는 경우

Ctrl과 F2를 눌러 프로그램을 중지하고 SIGINT를 잡을 수 있지만, Linux에서 실행하는 경우 Ctrl과 C를 동시에 눌러 중지할 수 있습니다.

Python에서 SIGINT 캡처

알고리즘(단계)

다음은 필요한 작업을 수행하기 위해 따라야 하는 알고리즘/단계입니다. -

  • import 키워드를 사용하여

    signalsys 모듈을 가져오세요.

  • time 모듈에서

    sleep 함수를 가져오려면 import 키워드를 사용하세요.

  • 변수를 생성하고 해당 값을 1로 초기화합니다(루프 실행 횟수를 나타내는 데 사용됨).

  • 무한 반복하려면

    True를 사용하세요.

  • 오류/예외를 처리하려면 try-Exception 블록을 사용하세요.

  • 위 변수를 출력하여 루프 실행 횟수를 출력합니다.

  • 각 숫자를 인쇄하는 사이에 임의의 초 동안 잠을 자도록 하는 인수로 숫자를 전달하여

    sleep() 함수를 사용하세요.

  • 루프 실행 횟수에 1을 더하세요.

  • 키보드 인터럽트 예외를 처리하려면

    Except 블록을 사용하세요.

  • 키보드 인터럽트 예외가 발생하면 메시지를 인쇄하세요.

  • 프로그램을 닫거나 종료하려면 sys 모듈의

    exit() 함수를 사용하세요.

다음 프로그램은 try/catch를 사용하여 SIGINT 예외를 포착합니다. -

으아아아

출력

실행되면 위 프로그램은 다음과 같은 출력을 생성합니다.

으아아아

이 프로그램에서는 try-catch 문을 사용하여 키보드 예외를 처리합니다. try 블록에서 숫자 증가 루프를 실행하는 동안 catch 블록에서 키보드 인터럽트를 포착했습니다.

결론

이 기사에서는 Python을 사용하여 SIGINT를 캡처하는 방법을 배웠습니다. 동일한 목적을 달성하기 위해 try/catch 문을 사용하는 방법을 배웠습니다. Try 및 catch 문은 0으로 나누기 및 키보드 인터럽트와 같은 예외를 처리하는 데 사용할 수 있습니다.

위 내용은 Python에서 SIGINT 신호를 잡는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿