파이썬에서 파일 또는 디렉토리의 경로를 처리할 때, ‘상대경로’와 ‘절대경로’의 개념은 매우 중요합니다. 경로 설정 방법에 대한 이해가 있어야 파일 입출력을 올바르게 수행할 수 있기 때문입니다. 이번 글에서는 상대경로와 절대경로의 정의부터 활용 방법, 그리고 파이썬으로 변환하는 방법까지 구체적으로 알아보도록 하겠습니다.
상대경로와 절대경로란 무엇인가?
**상대경로**는 현재 작업 중인 디렉토리를 기준으로 목표 파일이나 디렉토리의 위치를 나타내는 경로입니다. 쉽게 말해, 현재 위치와 목표 지점 사이의 ‘거리’를 대략적으로 알려주는 길 찾기라고 생각하면 됩니다. 반면, **절대경로**는 파일 시스템의 루트 디렉토리부터 시작하여 모든 디렉토리와 하위 디렉토리를 순차적으로 나열해서 목표 파일이나 디렉토리의 위치를 정확히 지정하는 방식입니다. 이는 파일 시스템 내에서 ‘절대적인’ 위치를 나타냅니다.
예를 들어, “/home/user/Documents/report.txt”는 절대경로이며, “Documents/report.txt”는 현재 위치가 “/home/user/”일 때의 상대경로가 됩니다.
| 경로 유형 | 설명 |
|---|---|
| 절대경로 | 루트 디렉토리부터 시작하는 전체 경로 |
| 상대경로 | 현재 디렉토리를 기준으로 지정하는 경로 |
왜 경로 변환이 필요한가?
파이썬 코드를 작성할 때 **경로 문제는 매우 빈번하게 발생**합니다. 특히, 다른 사람과 코드를 공유하거나 서버에서 실행해야 할 때는 절대경로가 중요합니다. 이는 경로가 바뀔 가능성이 없는 특정 파일의 위치를 명확하게 정의하기 때문입니다. 반대로, 개발 환경에서 자주 위치가 변하는 경우 상대경로가 더 유리할 수 있습니다.
파일 시스템이 유연해야 하는 대형 프로젝트에서는 경로 변환을 통해 코드의 호환성과 이동성을 높일 수 있습니다. 다양한 환경에서 동일한 코드가 작동할 수 있도록 하기 위해 경로 변환은 필수적인 작업입니다.
파이썬으로 경로 변환하기
파이썬에서 경로 변환은 `os` 및 `os.path` 모듈을 사용하여 쉽고 간단하게 처리할 수 있습니다. `os.path.abspath()`를 사용하면 상대경로를 절대경로로 변환할 수 있으며, 반대로 절대경로에서 특정 기준 디렉토리를 뺀 상대경로를 얻고 싶다면 `os.path.relpath()`를 사용할 수 있습니다.
아래는 간단한 예제입니다.