Python os 및 sys 내장 모듈 활용

os 모듈과 sys 모듈의 차이

os 모듈은 운영체제와의 상호작용을 담당하며, sys 모듈은 파이썬 인터프리터와 관련된 기능을 처리합니다.

os 모듈 주요 기능

  • os.mkdir(): 단일 디렉터리 생성
  • os.makedirs(): 중첩 디렉터리 생성
  • os.rmdir(): 빈 디렉터리 삭제
  • os.listdir(): 디렉터리 내용 목록 반환
  • os.rename(): 파일/디렉터리 이름 변경
  • os.remove(): 파일 삭제
  • os.getcwd(): 현재 작업 디렉터리 경로 확인
  • os.chdir(): 작업 디렉터리 변경
  • os.path.abspath(): 파일 절대 경로 획득
  • os.path.dirname(): 상위 디렉터리 경로 추출
  • os.path.join(): 경로 결합
  • os.path.exists(): 경로 존재 여부 확인
  • os.path.getsize(): 파일 크기 확인(바이트 단위)

디렉터리 생성 예제

import os
os.mkdir('new_folder')  # 단일 디렉터리 생성
os.makedirs('parent/child/grandchild')  # 중첩 디렉터리 생성

디렉터리 삭제 예제

os.rmdir('empty_dir')  # 빈 디렉터리 삭제
os.removedirs('a/b/c')  # 중첩 빈 디렉터리 제거

경로 조작 예제

current_dir = os.getcwd()
os.chdir('new_location')
abs_path = os.path.abspath(__file__)
parent_dir = os.path.dirname(__file__)

경로 검증 및 결합

combined = os.path.join('base', 'sub', 'file.txt')
if not os.path.exists('target'):
    os.makedirs('target')

sys 모듈 주요 기능

  • sys.path: 파이썬 경로 목록
  • sys.getrecursionlimit(): 최대 재귀 깊이 확인
  • sys.setrecursionlimit(): 재귀 깊이 제한 변경
  • sys.version: 파이썬 버전 정보
  • sys.platform: 운영체제 플랫폼 정보
  • sys.argv: 명령행 인수 처리

시스템 경로 확인

import sys
print(sys.path)  # 파이썬 모듈 검색 경로 출력

재귀 깊이 제어

print(sys.getrecursionlimit())  # 1000
sys.setrecursionlimit(1500)

명령행 인수 처리

# script.py 실행: python script.py user123 pass456
username, password = sys.argv[1], sys.argv[2]

파일 탐색기 예제

import os
base_dir = os.path.join(os.path.dirname(__file__), 'data')

while True:
    folders = os.listdir(base_dir)
    print("디렉터리 목록:", ', '.join(folders))
    folder_choice = input("디렉터리 선택: ")
    target_dir = os.path.join(base_dir, folder_choice)
    
    if os.path.isdir(target_dir):
        files = os.listdir(target_dir)
        print("파일 목록:", ', '.join(files))
        file_choice = input("파일 선택: ")
        file_path = os.path.join(target_dir, file_choice)
        
        if os.path.isfile(file_path):
            with open(file_path, 'r', encoding='utf-8') as f:
                print(f.read())
            break

태그: os sys 파이썬내장모듈 파일시스템 파이썬인터프리터

6월 12일 22:23에 게시됨