Python에서 실행 중이던 프로그램을 종료시키는 방법에는 아래 4가지가 있다.

1. quit()
2. exit()
3. sys.exit([arg])
4. os._exit([arg])


1. quit() 를 사용하는 방법

quit() 메소드를 이용하여 종료 작업을 수행할 경우 quit() 는 실행 중이던 프로그램뿐만 아니라 python 쉘까지 완전히 닫아버린다.
이러한 이유로 quit()는 python 쉘에서만 사용해야하고 프로그램 내에서는 사용하지 않는 것을 권장하고 있다.

 

2. exit() 를 사용하는 방법

exit() 메소드 역시 python 프로그램을 종료시킬 수 있는 메소드이지만 quit() 와 비슷하게 실행 중이던 프로그램뿐만 아니라 python 프로세스까지 완전히 종료시킨다. 따라서 python 쉘에서 사용하도록 하고 프로그램 내에서는 사용하지 않을 것을 권장한다.

 

3. sys.exit([arg]) 를 사용하는 방법

sys.exit()는 import sys 를 필요로 한다.
quit()나 exit()와는 달리, 쉘까지 날리지는 않으면서 프로그램만 정상적으로 종료시킬 수 있다.
특히 sys.exit() 메소드는 인자를 받는데, 0의 경우 정상적인 종료를 의미한다.
이러한 이유로 sys.exit()는 프로그램 내에서의 종료 동작을 수행하기 위한 가장 적합한 방법으로 소개된다.

sys.exit()의 인자로 0 이외의 다른 값을 사용할 경우 비정상적인 종료를 의미하는데,
아무런 인자도 사용하지 않을 경우에는 정상적인 종료(default: 0)를 하는 것으로 여겨진다.
0 이외의 값도 사용할 수 있다고는 하지만 대부분의 시스템에서는 이 값으로 0-127 범위의 정수를 사용하도록 한다.

인자로 정수가 아닌 오류 메세지를 입력할 경우 이를 출력하면서 종료시킬 수 있어, 예외 처리를 하는 데에도 유용하게 쓰일 수 있을 것 같다.

정상적인 종료를 할 경우
메세지를 출력하도록 하는 경우

 

4. os._exit([arg]) 를 사용하는 방법

os._exit()는 import os를 필요로 한다.
sys.exit()와 같이 프로그램만을 종료할 수 있도록 하지만, os._exit()에서는 인자로 상태 코드가 꼭 필요하다.
(python.org에서는 인자가 필수가 아니라고 하지만, 테스트해보았을 때에는 인자없이 실행할 경우 에러가 발생하였다..)
정상적인 종료를 의미할 경우 os.EX_OK 를 인자로 넘겨주면 된다.
이것 외의 다른 상태 코드는 아래 링크에서 확인할 수 있다.

 

os — Miscellaneous operating system interfaces — Python 3.9.5 documentation

os — Miscellaneous operating system interfaces Source code: Lib/os.py This module provides a portable way of using operating system dependent functionality. If you just want to read or write a file see open(), if you want to manipulate paths, see the os.

docs.python.org

 

정상적인 종료를 할 경우

 

+ Recent posts