IT/Python
Python, Pathlib를 상대 경로 관리
Cyber_
2025. 5. 4. 20:06
상대경로 관리의 중요성
df = pd.read_csv('D:/컴퓨터/폴더1/폴더2/data.csv') # 절대경로
- 하드코딩된 절대경로 -> 다른 컴퓨터에서 실행 불가
- 폴더 이동, 깃허브 업로드 시 오류 발생
이전에 사용하던 방식의 문제점
import os
data_path = os.path.join('data', 'etf_data.csv')
- 이 방법은 pathlib 사용법보다 복잡하고 가독성이 떨어집니다.
- 운영체제 구분자(/ vs ) 문제 발생 가능합니다.
해결책: Pathlib를 활용해 상대경로에 접근
Pathlib은 파이썬에서 파일 경로(디렉토리 경로)를 다루는 라이브러리 입니다.
기존의 os.path 방시보다 직관적이고 파워풀해서 Python 3.4 이상부터 공식 추천 방식으로 자리잡았어요.
- 경로들을 문자열이 아니라 객체(클래스)로 다룸
- \ 연산자로 경로를 쉽게 합칠 수 있음(Mac/Linux -> /)
from pathlib import Path
BASE_DIR = Path.cwd() # 현재 작업 디렉토리(current workig directory)
DATA_DIR = BASE_DIR.parent / "data" # 경로 객체 연산 활용
df = pd.read_csv(DATA_DIR / "etf_data.csv")
어떻게 관리할까?
1. 모듈화 프로그래밍(Modular Programming)
- 코드를 기능별로 파일(모듈)로 나누는 방식
- 예:
- settings.py(환경 설정, import, BASE_DIR 관리),
- path_manager.py(경로관리/ DATA_DIR과 같은 커스텀 경로 관리),
- notebooks(노트북 코드에서 경로 사용)
장점: 재사용성, 유지보수성, 협업