sys 모듈은 「파이썬 인터프리터 자신과 상호작용하는」 도구입니다.
명령줄 인자 받기, 표준 입출력 제어, 프로그램 종료, 모듈 검색 경로 같은 「실행 환경」 차원의 정보를 다룹니다.
sys.argv.
명령줄에서 받은 인자의 리스트.
python script.py arg1 arg2 실행 시 sys.argv는 ["script.py", "arg1", "arg2"].
argv[0]은 스크립트 이름.
본격적 인자 처리는 argparse가 표준이지만 간단한 스크립트는 sys.argv로 충분.
sys.exit().
프로그램 종료.
sys.exit(0) — 정상 종료, sys.exit(1) — 오류 종료, sys.exit("오류 메시지") — 메시지 출력 후 종료.
셸 스크립트와 결합할 때 종료 코드가 중요합니다.
sys.path.
파이썬이 모듈을 찾을 디렉토리 목록.
sys.path.insert(0, "/my/dir")로 새 검색 경로 추가.
import 시 이 리스트 순서대로 모듈을 찾습니다.
다만 sys.path 조작은 보통 마지막 수단이고, 정상적으로는 패키지 구조나 PYTHONPATH 환경변수를 쓰는 게 깔끔합니다.
기타 자주 쓰는 것들.
sys.stdin·stdout·stderr — 표준 입출력 스트림.
sys.platform — 'darwin'(맥)·'linux'·'win32'.
sys.version — 파이썬 버전 문자열.
sys.maxsize — 최대 정수 크기.
sys.getsizeof(obj) — 객체의 메모리 크기.
한 줄 요약
sys 모듈은 인터프리터 자신과의 상호작용입니다.
argv(명령줄 인자), exit(종료), path(모듈 검색), stdin/stdout/stderr(입출력 스트림)이 자주 쓰입니다.
더 알아볼 것
- argparse — argv보다 강력한 인자 처리
- __name__ == "__main__" 패턴
- sys.setrecursionlimit