Post

Python 표준 라이브러리 - sys 모듈(1)

Python 표준 라이브러리 - sys 모듈 (1)

Python 표준 라이브러리는 Python 인터프리터에 내장된 다양한 모듈과 패키지의 집합으로, Python 설치와 함께 자동으로 제공된다.
그 중 ‘sys’ 모듈은 Python에 내장된 파이썬 표준 라이브러리의 모듈의 한 부분이다. 당연 ‘sys’ 모듈 또한 Python 설치와 함께 자동으로 제공되므로 install 할 필요가 없다.

‘sys’ 모듈은 시스템 관련 정보를 얻거나 조작할 때 유용한 모듈이다.



불러오기

1
import sys


‘sys’ 모듈의 주요 변수 및 함수의 기능

1. ‘path’

  • ‘sys.path’는 Python 모듈들의 검색 경로 리스트를 보여준다. 이 리스트에 포함된 디렉토리들은 Python이 모듈을 import할 때 확인하는 경로를 나타낸다.
  • 같은 이름의 모듈이 여러 경로에 존재할 경우, 확인하는데 특히 유용하다.
  • 출력 리스트 순서는 일관된 규칙에 따라 결정되며, Python 인터프리터가 시작될 때의 여러 조건에 의해 영향을 받는다.

    • 현재 디렉토리
      • 항상 ‘sys.path’의 첫번째 요소로 출력된다.

    • ’PYTHONPATH’ 환경 변수
      • Python 인터프리터가 모듈을 검색할 때 참조하는 추가 디렉토리 목록을 지정하는데 사용하는 환경 변수.
      • ‘sys.path’에 경로를 추가하여 Python이 모듈을 찾을 때 검색 범위를 확장할 수 있게 해준다.
      • ‘PYTHONPATH’ 환경 변수에 의한 경로들은 리스트 상단에 위치하지만, 정확한 순서는 확실하지 않다.

    • 표준 라이브러리 디렉토리
      • Python 인터프리터 표준라이브러리가 위치한 경로

    • 서드파티 패키지 디렉토리
      • 서드파티 패키지 디렉토리는 일반적으로 ‘site-package’ 디렉토리로 표기되며, pip 등을 통해 설치된 패키지들이 위치한 곳이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import sys

# 현재 sys.path 출력
print("현재 sys.path:")
for path in sys.path:
    print(path)

# 새로운 모듈 경로 추가
new_path = '/path/to/directory'
if new_path not in sys.path:
    sys.path.append(new_path)

# 변경 후 sys.path 출력
print("\n변경 후 sys.path:")
for path in sys.path:
    print(path)





2. ‘argv’

  • 커맨드 라인에서 스크립트로 넘겨진 인자들을 저장하는 리스트를 보여준다.
  • 스크립트 파일을 실행할 때 사용자가 제공한 인자들을 처리하는 데 사용된다.

    • ’sys.argv[0]’
      • 스크립트의 이름을 출력한다.
    • ’sys.argv[1]’, ‘sys.argv[2]’ . . .
      • 스크립트에 전달된 추가 인자들을 출력한다.



❌주의

  • 모든 인자를 문자열로 출력한다. 다른 데이터 타입으로 사용하려면 변환을 해야 한다.
  • 인자가 제공되지 않았을 때의 상황을 처리하는 코드를 작성하자.



1
2
3
4
5
6
7
8
import sys

# 스크립트 이름 출력
print("Script name:", sys.argv[0])

# 추가 인자들 출력
for i in range(1, len(sys.argv)):
    print(f"arg{i}: {sys.argv[i]}")



다음 포스트에 남은 것들을 이어서..

This post is licensed under CC BY 4.0 by the author.