728x90

Python의 os 모듈은 운영체제 수준에서 파일, 디렉토리, 환경 변수, 프로세스 등을 직접 제어할 수 있는 강력한 표준 라이브러리입니다. 이 글에서는 기본적인 파일 조작부터 고급 시스템 제어까지 실무에서 바로 사용할 수 있는 os 활용법을 전문가 시각으로 정리했습니다.
1. os란 무엇인가?
- Python 표준 라이브러리로 별도 설치 없이 사용 가능
- 다양한 운영체제 기능(파일, 디렉토리, 환경 변수, 프로세스 등) 제어 가능
- Windows, Linux, macOS 등 이식성 제공
2. 파일 & 디렉토리 조작
import os
# 현재 작업 디렉토리
cwd = os.getcwd()
print("현재 디렉토리:", cwd)
# 디렉토리 생성/제거
os.mkdir("dir1")
os.makedirs("nested/dir2", exist_ok=True)
os.rmdir("dir1")
os.removedirs("nested/dir2")
# 파일 이름 변경/삭제
with open("file.txt", "w") as f:
f.write("Hello")
os.rename("file.txt", "hello.txt")
os.remove("hello.txt")
3. 경로 조작 핵심
| 함수 | 기능 | 예시 |
|---|---|---|
| os.path.join() | 경로 연결 | os.path.join("a","b") → "a/b" |
| os.path.abspath() | 절대 경로 반환 | os.path.abspath(".") |
| os.path.basename() | 파일명 추출 | os.path.basename("/a/b.txt") → "b.txt" |
| os.path.exists() | 경로 존재 여부 | os.path.exists("a.txt") → True/False |
| os.path.isdir() | 디렉토리 확인 | os.path.isdir("mydir") |
| os.path.getsize() | 파일 크기(mmbyte) | os.path.getsize("a.txt") |
4. 환경 변수 다루기
# 읽기/쓰기/삭제
os.environ["MY_VAR"] = "value"
print(os.getenv("MY_VAR", "디폴트"))
os.environ.pop("MY_VAR", None)
5. 시스템 명령 & 프로세스 제어
# 시스템 명령 실행 (Shell)
os.system("echo 안녕하세요")
# 명령 결과 캡처
import subprocess
ret = subprocess.run(["ls", "-l"], capture_output=True, text=True)
print(ret.stdout)
6. 디렉토리 순회
# os.walk
for root, dirs, files in os.walk("."):
print(root, dirs, files)
# 단순 리스트링
print(os.listdir("."))
7. os vs pathlib 비교
| 기능 | os & os.path | pathlib |
|---|---|---|
| 가독성 | 함수 기반 | 객체 지향 방식 |
| 경로 연결 | os.path.join() |
Path("a")/"b" |
| 이식성 | 높음 | 같음 |
| 추가 기능 | 없음 | 파일 읽기/쓰기 내장 |
8. 실무 팁
- 경로는 os.path.join으로 처리해 플랫폼 차이 제거
- 환경 변수는 민감 정보 관리에 활용 (ex. .env 연동)
- 주기적 백업 스크립트 작성에 os.walk 활용 추천
- 큰 시스템 명령은 subprocess로 실행 안정성 확보
9. 고급: 권한 및 소유권 조정
# chmod
os.chmod("script.sh", 0o755)
# Unix 전용: 사용자 변경
os.chown("file.txt", uid, gid)
10. 결론
os 모듈은 파일/디렉토리 조작, 시스템 명령 실행, 환경 변수 관리는 물론 프로세스 제어까지 가능한 운영체제 제어의 핵심 도구입니다. 플랫폼 이식성과 실무 적용성을 고려한 활용은, Python을 단순 언어에서 강력한 시스템 언어로 자리매김하게 합니다.
참고 출처
- Python 공식 문서 – os 모듈: https://docs.python.org/3/library/os.html
- Python Cookbook – David Beazley, Brian K. Jones
- Real Python – os 모듈 심화 강의
728x90
'Artificial Intelligence > 60. Python' 카테고리의 다른 글
| [PYTHON] ChatGPT API로 나만의 AI 챗봇 만들기 가이드 (0) | 2025.07.22 |
|---|---|
| [PYTHON] OpenAI와 함께하는 실전 Python 인공지능 개발 가이드 (0) | 2025.07.22 |
| [PYTHON] datetime 모듈 완전 가이드: 날짜와 시간을 자유자재로 (0) | 2025.07.22 |
| [PYTHON] Regex 완전 정복 : 정규표현식으로 문자열 다루기 (0) | 2025.07.22 |
| [PYTHON] BeautifulSoup 완전 안내 : 웹 크롤링의 핵심 요소 (0) | 2025.07.22 |