파이썬 운영체제 및 시스템 모듈 활용

운영체제 상호작용을 위한 os 모듈

파이썬의 os 모듈은 프로그램이 운영체제와 직접적으로 소통할 수 있도록 다양한 기능을 제공합니다.

import os

현재 작업 디렉토리를 확인하려면 os.getcwd()를 사용합니다.

특정 디렉토리 내 파일과 폴더 목록을 얻으려면 os.listdir() 함수를 호출합니다.

단일 파일을 삭제할 때는 os.remove()를 이용하며, 여러 디렉토리를 제거하려면 os.removedirs(r"c:\python")를 사용할 수 있습니다.

경로가 파일인지 확인하려면 os.path.isfile(), 디렉토리인지 검사하려면 os.path.isdir()를 사용합니다.

절대 경로 여부를 판단하려면 os.path.isabs(), 실제 존재하는 경로인지 확인하려면 os.path.exists()를 사용합니다.

경로에서 디렉토리명과 파일명을 분리하려면 os.path.split()를 사용합니다:

os.path.split('/home/swaroop/byte/code/poem.txt')
# 결과: ('/home/swaroop/byte/code', 'poem.txt')

확장자와 파일명을 분리하려면 os.path.splitext()를 사용합니다:

os.path.splitext('/usr/local/test.py')
# 결과: ('/usr/local/test', '.py')

디렉토리 경로만 추출하려면 os.path.dirname(), 절대 경로를 얻으려면 os.path.abspath(), 파일명만 가져오려면 os.path.basename()를 사용합니다.

쉘 명령어를 실행하려면 os.system()을 사용할 수 있으며, 환경 변수 값을 읽으려면 os.getenv("HOME")를 사용합니다.

모든 환경 변수를 확인하려면 os.environ을 참조하고, 임시로 환경 변수를 설정하려면 os.environ.setdefault('HOME','/home/admin')를 사용합니다.

운영체제별 줄바꿈 문자를 얻으려면 os.linesep을 사용합니다:

print(f"Hello{os.linesep}World")

운영체제 플랫폼 정보는 os.name으로 확인할 수 있습니다. 윈도우에서는 'nt', 리눅스/유닉스 계열에서는 'posix'를 반환합니다.

파일 이름 변경은 os.rename(old, new)로 수행할 수 있고, 다중 디렉토리 생성은 os.makedirs(d:\\c/d/e/f/g) 또는 os.makedirs(c/d/e/f/g)로 가능합니다.

단일 디렉토리는 os.mkdir("testdir")로 생성할 수 있으며, 파일 속성을 조회하려면 os.stat(file)를 사용합니다:

print(os.stat("module.py"))
  • 접근 시간 (st_atime): 2023-03-05 10:54:39 (UTC) → st_atime=1701763679
  • 수정 시간 (st_mtime): 2023-03-05 10:54:38 (UTC) → st_mtime=1701763678
  • 생성 시간 (st_ctime): 2023-03-04 08:16:08 (UTC) → st_ctime=1701669768

파일 권한 및 타임스탬프 수정에는 os.chmod(file)를 사용하고, 파일 크기를 확인하려면 os.path.getsize(filename)를 사용합니다.

디렉토리와 파일명을 결합하려면 os.path.join(dir, filename)를 사용하며, 작업 디렉토리를 변경하려면 os.chdir(dirname)를 호출합니다.

터미널 크기를 확인하려면 os.get_terminal_size()를 사용하고, 특정 프로세스를 종료시키려면 os.kill(10884, signal.SIGKILL)를 사용합니다.

인터프리터 환경 관리를 위한 sys 모듈

sys 모듈은 파이썬 인터프리터와 관련된 기능들을 제공하는 핵심 표준 라이브러리입니다.

  1. 명령줄 인자 처리: sys.argv는 명령줄에서 전달된 인자들을 담은 리스트입니다. 첫 번째 요소는 스크립트 이름이며, 이후 요소들은 사용자가 입력한 인자들입니다.
  2. 모듈 검색 경로: sys.path는 모듈을 찾기 위해 파이썬이 탐색하는 경로들의 리스트입니다.
  3. 표준 입출력 스트림: sys.stdin, sys.stdout, sys.stderr는 각각 표준 입력, 출력, 에러 스트림에 해당하는 파일 객체입니다.
  4. 프로그램 종료: sys.exit()는 프로그램을 종료시키며 선택적으로 상태 코드를 전달할 수 있습니다.
  5. 예외 정보 관리: sys.exc_info()는 현재 처리 중인 예외 정보를 튜플 형태로 반환합니다.
  6. 버전 정보 확인: sys.version은 파이썬 버전 문자열을 포함하며, sys.version_info는 주 버전, 부 버전, 마이크로 버전 번호를 담은 튜플입니다.
  7. 모듈 관리: sys.modules는 현재 로드된 모든 모듈을 저장하는 딕셔너리입니다.
  8. 기타 기능: sys.platform(플랫폼 정보), sys.getsizeof()(객체 크기) 등 다양한 추가 기능이 있습니다.

sys.path는 다음과 같이 확인할 수 있습니다:

import sys
print(sys.path)

이 리스트는 일반적으로 다음 위치들을 포함합니다:

  1. 실행 중인 스크립트의 디렉토리
  2. 표준 라이브러리가 설치된 Lib 디렉토리
  3. PYTHONPATH 환경 변수에 지정된 경로들
  4. 기타 시스템 기본 경로들

모듈 검색 순서는 리스트 항목 순서에 따라 결정되므로, 필요한 경우 직접 경로를 추가할 수 있지만 권장되는 방법은 아닙니다.

sys.argv를 활용한 예제는 다음과 같습니다:

# example.py
import sys

print("스크립트 이름:", sys.argv[0])
print("입력 인자들:", sys.argv[1:])

명령줄에서 아래와 같이 실행하면:

python example.py arg1 arg2 arg3

다음과 같은 출력이 나옵니다:

스크립트 이름: example.py
입력 인자들: ['arg1', 'arg2', 'arg3']

태그: python os-module sys-module file-system environment-variables

6월 4일 01:37에 게시됨