파이썬(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 |
'Python' 카테고리의 다른 글
[Python] os.path 모듈. 파일 경로 조작하기 (0) | 2019.06.17 |
---|---|
[Python]리눅스 CentOS에 python3버전 설치하는 방법 (0) | 2019.04.12 |
[Python] 파이썬 mssql 쿼리시 Incorrect syntax near .. 20018 오류원인 (0) | 2019.04.11 |
[Python] 파이썬 Dictionary 객체를 json.dumps() 사용시 속성 순서 고정하기 (0) | 2019.03.20 |
[Python] 파이썬 오라클(cxOracle) 사용시 쿼리 결과 Dictionary 로 받기 (2) | 2019.03.18 |