코드잇 스프린트/파이썬

절대경로 vs. 상대경로

JOHAWK 2024. 7. 31. 11:45

파이썬뿐만 아니라 unix 등 전반적인 컴퓨터 프로그래밍에서 사용되는 절대경로와 상대경로에 대해 알아보겠습니다.

절대경로 vs. 상대경로

목차

1. 절대경로

2. 상대경로

 

1. 절대경로

절대경로는 절대적인 기준이 되는 루트디렉토리(root directory)로부터 경유한 경로를 모두 기입하는 경로를 의미한다.

 

안전하나 루트 디렉토리부터 멀리 떨어진 파일이나 디렉토리를 사용하고자 할 때 너무 길어질 수 있다는 단점이 있다.

 

파이썬의 경우 os 모듈에서 print(os.path.abspath('.')) 를 사용하면 현재 위치의 절대경로를 확인할 수 있다.

 

unix 커맨드에서는 홈 디렉토리나 그보다 아래에 있는 경로를 사용한다면 홈 디렉토리를 의미하는 ~를 활용해서 길이를 단축시킬 수 있다.

# 절대경로
C:\Users\user_name\PycharmProjects

 


2. 상대경로

상대 경로는 현재 내가 작업하고 있는 디렉토리를 기준으로 나타내는 경로를 의미한다.

 

상대 경로에서 현재 위치는 .으로 표현되며 상위 디렉토리는 ..으로 표현한다.

 

../..은 상위 디렉토리의 상위 디렉토리, 즉, 2단계 위 디렉토리로 이동한다.

 

# 현재 작업 디렉토리가 C:\Users\user_name 일 때 PycharmProjects의 상대경로
./PycharmProjects

# 현재 작업 디렉토리가 C:\Users\user_name 일 때 Users의 상대경로
..

# 현재 작업 디렉토리가 C:\Users\user_name 일 때 C:\의 상대경로
../..

 

이렇게 보면 절대경로보다 상대경로가 매우 짧아서 좋아보이지만 상황에 따라 절대경로가 상대경로보다 효율적일 때가 있다.

 

  1) 현재 작업 디렉토리에서 목표 디렉토리가 멀 때(예. 상대경로에서 상위 폴더로 엄청 올라갈 때 ../../../..)

  2) 작업 디렉토리를 자주 바꿔줘야 할 때 (상대경로로 입력하다보면 헷갈릴 수 있음)

 

그러므로 자신이 작업하고 있는 상황에 따라 적절한 절대(상대)경로를 활용하자.