소개
파이썬의 sys 모듈은 파이썬 인터프리터 자체에 대한 다양하고 유용한 정보를 제공하는 표준 라이브러리입니다. 이 모듈을 활용하면 인터프리터와 관련된 상수, 함수, 메서드들의 세부 정보에 접근할 수 있으며, 스크립트 실행 환경을 세밀하게 제어할 수도 있습니다.
시작하기
sys 모듈은 파이썬에 기본으로 포함되어 있기 때문에 PIP 같은 패키지 관리자를 통해 별도로 설치할 필요가 없습니다.
sys 모듈과 그 기능들을 사용하려면 먼저 임포트해야 합니다. 아래 한 줄의 코드로 간단히 가져올 수 있습니다.
import sys
명령줄 인자 목록 얻기
파이썬에서는 터미널에서 스크립트를 실행할 때 다양한 인자(arguments)를 함께 전달할 수 있습니다. 사용자가 스크립트를 실행하며 입력한 인자를 화면에 표시하거나, 다른 용도로 저장해야 할 때가 종종 있습니다.
이럴 때 sys 모듈의 argv 함수를 사용하면 매우 쉽게 처리할 수 있습니다.
# example.py라는 이름의 파이썬 스크립트 생성
import sys
print("You entered: ", sys.argv[1], sys.argv[2])위 프로그램을 터미널에서 인자와 함께 실행해 보겠습니다. 먼저 스크립트가 있는 디렉터리로 이동한 후, 다음 명령어를 입력합니다.
python example.py Hello World
터미널에 위 명령어를 입력하면 프로그램이 실행되고, 우리가 입력한 인자들이 그대로 출력됩니다.
실행 결과
You entered: Hello World
참고: 위 예제에서 sys.argv[0]이 아닌 sys.argv[1]부터 시작한 이유는, sys.argv[0]에는 현재 실행 중인 스크립트의 파일 이름이 저장되기 때문입니다. 즉, argv[0]은 전달된 인자가 아니라 스크립트 이름을 출력합니다.
프로그램 실행 강제 종료하기
애플리케이션을 강제로 종료하거나 특정 시점에 실행을 중단하고 싶다면, sys 모듈의 exit() 함수를 사용하면 됩니다.
import sys
print("Hello there!")
sys.exit()
print("This line is not even executed because the program exited in the last line")실행 결과
Hello there!
위 예제에서는 sys.exit() 함수를 호출하여 프로그램의 실행을 즉시 중단했습니다. 그 결과 마지막 print 문은 실행되지 않고 출력에서 제외된 것을 확인할 수 있습니다.
현재 파이썬 버전 확인하기
지금 어떤 버전의 파이썬으로 작업하고 있는지 궁금한 적이 있나요? 또는 사용자에게 자신이 어떤 파이썬 버전으로 스크립트를 실행하고 있는지 알려주고 싶을 수도 있습니다.
이때 sys.version 속성을 사용하면 됩니다.
import sys
print("You are currently using Python version", sys.version)실행 결과
You are currently using Python version 3.7.5 (tags/v3.7.5:5c02a39a0b, Oct 15 2019, 00:11:34) [MSC v.1916 64 bit (AMD64)]
설치된 모든 파이썬 모듈의 위치 확인하기
설치된 파이썬 모듈들이 어디에 저장되어 있는지 확인하고 싶다면 sys.path를 사용하세요. sys.path는 모듈을 검색하는 디렉터리 경로들의 목록을 반환하므로, 현재 환경에서 어떤 위치의 모듈을 불러올 수 있는지 파악하는 데 유용합니다.
import sys sys.path
사용자로부터 값 읽어오기
사용자 입력을 읽는 방법은 input() 함수만 있는 것이 아닙니다. sys 모듈의 stdin 객체를 사용해서도 입력을 받을 수 있습니다.
import sys
data = sys.stdin.readline()
print("You have entered -> " + data)위 코드는 사용자가 Enter 키를 누를 때까지 입력된 데이터를 한 줄씩 읽어 들인 후, 그 내용을 그대로 출력합니다. 파일이나 파이프로부터 표준 입력을 처리해야 하는 상황에서 특히 유용합니다.
마무리
지금까지 파이썬에서 sys 모듈을 어떤 상황에서, 어떻게 활용하는지 기본적인 내용을 살펴보았습니다. 명령줄 인자 처리, 프로그램 종료, 버전 확인, 모듈 검색 경로 조회, 표준 입력 처리까지 실무에서 자주 쓰이는 핵심 기능들을 다루었으니 바로 프로젝트에 적용해 보세요.
sys 모듈에는 이 외에도 더 많은 기능과 함수들이 포함되어 있습니다. 각 기능에 대해 자세히 알아보려면 공식 문서(https://docs.python.org/3/library/sys.html)를 참고하시기 바랍니다.