Python
[Python] KeyboardInterrupt - 프로그램 종료 처리
비번변경
2025. 1. 17. 11:31
개요
프로그램을 개발하다 보면 프로그램 종료 시 처리되어야 하는 몇 가지 작업이 있을 수 있다. 이번 글에서는 Python 애플리케이션을 종료시킬 때 필요한 작업을 처리할 수 있도록 하기 위한 방법 중 KeyboardInterrupt를 활용한 방법을 정리해 둔다.
KeyboardInterrupt
KeyboardInterrupt는 사용자가 키보드 동작(ctrl + c, SIGINT)을 사용하여 프로그램 실행을 종료할 때 발생시키는 내장 예외이다. 동작하는데 많은 시간을 필요로 하는 프로그램을 제어할 때 필요할 수 있다. KeyboardInterrupt는 예외이기 때문에 try ~ except 구문으로 처리할 수 있다.
try:
작업
except KeyboardInterrupt:
종료 작업
다만 KeyboardInterrupt는 SIGINT에만 반응하기 때문에 다른 시그널은 처리할 수 없는 것으로 보인다.
`
예시
간단하게 다음과 같이 무한 루프를 돌면서 숫자를 출력하는 프로그램을 작성한다고 하자.
import time
def execute():
i = 0
while True:
print(i)
time.sleep(1)
i += 1
위 함수가 동작하는 중에 사용자 종료 입력에 의해 종료될 때 처리할 작업이 있다면 다음과 같이 try ~ except 구문을 사용할 수 있다.
def main():
print(f'프로그램 시작')
try:
execute()
except KeyboardInterrupt:
print('프로그램 종료')
if __name__ == '__main__':
main()
실행 테스트
동작 후 종료하면 다음과 같이 프로그램 종료 시 KeyboardInterrupt 예외를 잡고 '프로그램 종료'라는 문자열을 출력하는 모습을 확인할 수 있다.
참고 문서
https://www.geeksforgeeks.org/how-to-catch-a-keyboardinterrupt-in-python/