Excel & IT Info

아이엑셀러 닷컴, 엑셀러TV

Python

파이썬에서 프로그램을 종료하는 3가지 방법

권현욱(엑셀러) 2024. 1. 17. 20:00
반응형

프로그램을 종료하는 방법을 아는 것은 중요하며 다양한 시나리오에서 유용할 수 있습니다. 파이썬 프로그램을 중지하는 세 가지 방법의 차이점을 소개합니다.

 

권현욱(엑셀러) | 아이엑셀러 닷컴 대표 · Microsoft Excel MVP · Excel 솔루션 프로바이더 · 작가

 

(이미지: 아이엑셀러 닷컴)

 

※ 이 글은 아래 기사 내용을 토대로 작성되었습니다만, 필자의 개인 의견이나 추가 자료들이 다수 포함되어 있습니다.


  • 원문: 3 Ways to End a Program in Python
  • URL: https://www.makeuseof.com/how-to-end-python-program-ways/

1. quit() 또는 exit() 사용

파이썬 프로그램을 종료하는 가장 간단한 방법 중 하나는 내장 메서드인 quit() 또는 exit() 중 하나를 사용하는 것입니다. quit()과 exit() 함수는 정확히 동일한 작업을 수행하므로 어떤 함수를 사용하는지는 개인 취향의 문제입니다. 다음은 quit() 함수를 사용하여 Python 프로그램을 종료하는 방법입니다.

for num in range(10):
    if num == 9:
        quit()
    print(num)

 

위의 샘플 프로그램은 콘솔에 0에서 8까지의 정수를 출력합니다. num이 9가 되면 프로그램이 종료됩니다. 또한 quit() 명령을 사용하여 Python 스크립트를 대화형으로 실행할 수 있는 Python IDLE(통합 개발 및 학습 환경)을 종료할 수도 있습니다.

quit() 및 exit() 모두 사이트 모듈에 의존하므로 프로덕션 환경에서는 사용해서는 안 됩니다. 이어서 소개하는 메서드인 sys.exit()가 더 나은 옵션입니다.

2. sys.exit() 사용

프로그램에서 sys.exit()를 호출하면 Python은 SystemExit 예외를 발생시킵니다. 이 함수는 정수 종료 코드를 지정하는 선택적 인수를 받습니다(기본값은 0). 종료 코드가 1이 되고 객체의 문자열 값을 표준 오류로 인쇄하는 객체를 전달할 수도 있습니다.

import sys # Remember to include this statement at the top of the module

for num in range(10):
    if num == 5:
        sys.exit("You exited the program")
    print(num)

 

프로그램의 출력 결과는 다음과 같습니다.

 

 

quit이나 exit 메서드와 마찬가지로 sys.exit()도 SystemExit 예외를 발생시킵니다. 즉, sys.exit()를 호출하거나 SystemExit()를 발생시킬 수 있습니다. 둘 다 선택적 인수를 받습니다.

위 코드의 작동 방식을 이해하지 못한다면 가장 중요한 파이썬 함수에 대해 배워야 합니다.

 

3. os._exit() 사용

프로그램을 종료하는 세 번째 방법은 os._exit() 메서드입니다. 선택적 인수를 전달하여 종료 상태 코드를 지정할 수 있습니다. os._exit()는 os 모듈에서 제공되며 파이썬 프로그램이 종료될 때 발생하는 일반적인 정리 작업을 수행하지 않고 즉시 프로세스를 종료합니다.

이 함수는 정상적인 정리를 수행하지 않고 종료하므로 특별한 경우에만 사용해야 합니다. Python 문서에 따르면 좋은 예는 포크(os.fork()를 사용하여 만든 새 프로세스) 이후의 자식 프로세스에 있습니다. 다음은 os._exit() 함수를 사용하여 프로그램을 종료하는 방법의 예입니다.

import os
import sys

def child_process():
    print("Child process is running.")
    os._exit(0)

def main():
    print("Parent process is running.")

    try:
        pid = os.fork()

        if pid == 0:
            # Code in the child process
            child_process()
        else:
            # Code in the parent process
            print(f"Parent process is continuing with child process PID: {pid}")
    except OSError as e:
        print(f"Fork failed: {e}")
        sys.exit(1)

    print("Parent process is done.")

if __name__ == "__main__":
    main()

 

위 코드는 다음과 같이 출력됩니다.

 

 

결론: 그렇다면 어떤 방법을 사용해야 하나요?

파이썬은 프로그램을 종료하는 다양한 방법을 제공합니다. 그러나 이러한 메서드의 대부분은 동일한 기능을 수행합니다. 따라서 파이썬을 배울 때 프로그램에 종료 메커니즘을 추가해야 하는 경우 의사 결정의 부담을 줄일 수 있습니다.

요약하면, sys.exit()는 파이썬에서 프로그램을 종료할 때 자주 사용하는 메서드입니다. 이 함수는 선택적 종료 코드와 함께 SystemExit 예외를 발생시킵니다. quit() 및 exit() 메서드는 Python REPL을 사용할 때 더 적합합니다. 항상 사용할 수 없는 사이트 모듈에 의존하므로 프로덕션 환경에서는 사용하지 않는 것이 좋습니다. os._exit()를 사용할 필요는 거의 없습니다.

 

 

엑셀과 VBA의 모든 것 아이엑셀러 닷컴 · 강사들이 숨겨 놓고 보는 엑셀러TV