HOWTO · Python

Python에서 프로그램을 종료하는 방법

Python에서는 quit(), exit(), sys.exit() 및 os.exit()와 같은 많은 내장 함수가 Python 프로그램을 종료하는 데 사용됩니다.

PHP에서와 마찬가지로die()명령은 실행중인 스크립트를 종료합니다. 마찬가지로 Python 스크립트는quit(),exit(),sys.exit(),os.exit()와 같은 다른 내장 함수를 사용하여 종료 할 수 있습니다. 파이썬은 하향식 순서로 명령을 실행하고 기준에 따라 코드에 정의 된 루프를 실행합니다. 그러나 파이썬 인터프리터가 EOF파일의 끝에 도달하면 더 많은 명령어를 읽을 수 없으므로 실행을 종료합니다.

이 기사에서는 Python으로 프로그램을 종료하는 방법을 소개합니다.

quit()메서드로 Python 프로그램 종료

내장 함수를 사용하여 Python 스크립트를 종료하는 쉽고 효과적인 방법은quit()메소드입니다. 이 기능은 파이썬 인터프리터에서만 사용할 수 있습니다. 이 명령이 실행되면 OS에서SystemExit 예외가 생성됩니다. 전체 예제 코드는 다음과 같습니다.

for test in range(10):
    if test == 5:
        print(quit)
        quit()
        print(test)

출력:

0
1
2
3
4
Use quit() or Ctrl-Z plus Return to exit

exit()메서드로 Python 프로그램 종료

기능은quit()메소드와 동일하지만이를 위해 Python 라이브러리를 가져올 필요는 없습니다. 전체 예제 코드는 다음과 같습니다.

for test in range(10):
    if test == 5:
        print(exit)
        exit()
    print(test)

출력:

0
1
2
3
4
Use exit() or Ctrl-Z plus Return to exit

sys.exit()메서드로 Python 프로그램 종료

이 메서드는quit()exit()메서드보다 낫습니다. 구문은 다음과 같습니다.

sys.exit([arg])

arg는 구문에서 선택 사항입니다. 대부분 정수 값이지만 문자열 값도 전달할 수 있습니다. 0 인수 값은 성공적인 종료에서 가장 좋은 경우로 간주됩니다. 전체 예제 코드는 다음과 같습니다.

import sys

weight = 70
if weight < 80:
    sys.exit("weight less than 80")
else:
    print("weight is not less than 80")

출력:

SystemExit: weight less than 80

os.exit()메서드로 Python 프로그램 종료

이 방법은 스크립트의 자식 프로세스와 같은 특별한 상태로 프로세스를 종료하는 데 사용됩니다. os.fork()메소드를 사용하여 자식 프로세스를 생성 할 수 있습니다. os.fork()명령은 Linux에서 효율적으로 작동합니다. 그러나 Windows 용 Cygwin을 사용해야합니다. 참조는 여기입니다.

전체 예제 코드는 다음과 같습니다.

import os

parent_id = os.fork()
if parent_id > 0:
    print("\nIn parent process")
    info = os.waitpid(parent_id, 0)
    if os.WIFEXITED(info[1]):
        code = os.WEXITSTATUS(info[1])
        print("Child's exit code:", code)
else:
    print("child process")
    print("Process ID:", os.getpid())
    print("Test Code")
    print("Child exiting..")
    os._exit(os.EX_OK)

os.wait()메소드는 종료 상태와 함께 하위 프로세스 ID를 반환합니다. os._exit()메소드를 사용하여 종료 코드를 얻습니다.

출력:

AttributeError: module 'os' has no attribute 'fork'

결론

sys.exit()메소드는 위의 모든 메소드 중에서 선호됩니다. 반면에os.exit()명령은 특정 시나리오 및 즉시 종료에 사용해야합니다.