파이썬(Python) sys 모듈로 파이썬 프로그램 종료시키는 방법
Python의 sys모듈은 현재 파이썬 프로그램이 실행되고 있는 인터프리터에 대한 정보들을 얻을 수 있는 모듈입니다. 따라서 sys모듈을 이용하면 현재 실행되고 있는 파이썬 프로그램을 종료시킬 수 있습니다.



sys.exit()
특별한 경우가 아니면 매개변수 없이 sys.exit()를 호출하여 종료시킬 수 있습니다. sys모듈을 사용하기 위해 import 시켜주어야 합니다.
import sys
 
 
print('프로그램 시작')
sys.exit()
 
 
print('실행안됨!')
cs


프로그램이 종료되기 때문에 '실행안됨!'은 출력되지 않습니다.
프로그램 시작
cs




예외처리
sys.exit()는 SystemExit 예외를 던지도록 되어있기 때문에, 만약 다른 사람이 작성한 api에서 sys.exit()를 호출하고 있다면 SystemExit 예외를 잡아서 처리해주는 방법으로 종료를 막을 수 있습니다.




유닉스/리눅스 쉘 스크립트에서 종료 코드 리턴하기
UNIX/Linux 에서 시스템 프로그래밍이나 간단한 배치 프로그래밍시에 파이썬 스크립트를 이용할 수 있습니다. 이때 Linux/Unix에서는 명령어를 실행한 후에 echo $? 를 실행하여 방금 실행했던 명령어가 잘 종료되었는지의 여부를 종료 상태코드를 통해 알 수 있습니다.

보통 echo $? 를 실행했을때 0이 리턴된다면 방금 실행했던 명령어 프로그램이 정상 종료된것입니다.
#] python pythonTest.py
#] echo $?
0
cs



이를 이용하여 다양한 쉘스크립트 등에서의 응용이 가능한데, 이를 파이썬에서 sys.exit(args)를 통해 상태코드를 제공해줄 수 있습니다.

만약 아래처럼 sys.exit(객체) 정수 이외의 다른 타입을 넣는 경우 해당 객체를 문자열로 변환후 출력하고 echo $?을 실행하는 경우 종료 상태 코드 1을 리턴합니다.
import sys
 
 
print('프로그램 시작')
sys.exit('error!!!')
 
 
print('실행안됨!')
cs


이때 'error!!!'는 sys.stderr 으로 출력됩니다.




만약 sys.exit(정수) 형태로 사용한 경우에는 해당 숫자를 종료 상태코드로 리턴합니다.
import sys
 
 
print('프로그램 시작')
sys.exit(30)
 
 
print('실행안됨!')
cs




블로그 이미지

도로락

IT, 프로그래밍, 컴퓨터 활용 정보 등을 위한 블로그

댓글을 달아 주세요! 질문 환영합니다!