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