퍼포마의 야근근절을 위한 코딩

Python에서 파일 경로(Path) 설정할 때 알면 좋은 개념들

인생은스트러글 2022. 10. 4. 05:59

[목차]

0. 여는 말

1. 절대 경로 vs. 상대 경로

2. 경로에서 마침표(' . ') 개수에 따른 의미 차이

3. 맺는 말

 


 

0. 여는 말

 

오늘은 파이썬에서 파일 경로를 설정하는 2가지 방법, 그리고 경로 설정에서 마침표의 개수에 따른 의미 변화에 대하여 얘기해 보려 합니다.

막상 알고 나면 쉽고 별 거 아닌 내용이지만, 모른다면 파일을 불러오고 내보내는 간단한 작업조차 어려워질 수 있는 개념이니, 편하게 읽으시고 '그렇구나' 정도로만 알고 가셔도 좋을 듯 합니다.

 

그럼, 오늘 글 시작하겠습니다!

 


 

1. 절대 경로 vs. 상대 경로

 

* 절대 경로: 컴퓨터 최상단 위치로부터 시작하는 전체 경로를 서술하는 방법
* 상대 경로: 현재 내 위치로부터 시작하여 상대적인 경로를 서술하는 방법

 

일상생활에 비유해 보면, "우체국이 어디에 있나요?"라는 질문에 우리는 2가지 방법으로 대답할 수 있을 것 같아요.

첫째는 "길안내 앱에서 '서울시 ㅇㅇ구 ㅇㅇ동 ㅇㅇ번지'를 찍고 찾아가세요"라고 답할 수도 있을 것이고,
둘째는 "여기서 직진하시다가 사거리에서 우회전하신 다음, 한 블럭 더 가시면 있는 오른쪽 건물 1층에 있어요"라고 답할 수도 있을 것입니다.
위 비유에서 전자가 절대경로, 후자가 상대경로에 해당됩니다.

 

1) 절대 경로

먼저, 절대 경로는 '컴퓨터 최상단 위치로부터 파일 위치까지 이르는 경로 전체'를 보여줍니다.
보통 파일의 '경로 복사'를 했을 때 보게 되는 경로가 이에 해당합니다.

 

보통 우리가 파일 경로를 찾을 때 마우스 우클릭을 하여 찾는 경로가 '절대 경로' 입니다 :)

 

'절대 경로'는 보통 이런 식으로 생겼습니다

 

절대 경로는 처음부터 끝까지의 전체 경로를 보여주기 때문에, 내 현재 위치가 어디인가와 상관없이 해당 경로 주소를 사용 가능하다 (=안정적이다)는 장점이 있습니다.

다만 단점으로는, 경로 대상이 되는 파일이 컴퓨터 최상단 위치로부터 멀리 있을 경우, 경로 주소가 너무 길어져 사용하기 불편할 수 있습니다. (여러 번 반복해서 사용해야 하는데 아래처럼 경로가 길다면, 개인에 따라 불편할 수 있습니다)

/Users/admin/personal_workspace/path1/path2/path3/path4/path5/path6/path7/path8/examplefile.csv

 

2) 상대 경로

반면, 상대 경로는 '현재 내 위치를 출발점으로 한 파일 위치까지의 경로'를 보여 줍니다.

 

상대경로는 주로 이런 모양으로 생겼습니다 (맨 앞에 마침표가 있죠)

 

현재 나의 위치가 곧 기준이 되기 때문에, 내 위치가 컴퓨터 최상단으로부터 멀리 떨어져 있고 실제 사용할 파일은 내 위치로부터 가까이에 있을 때, 상대경로를 사용하면 비교적 간단하게 경로를 표기할 수 있다는 장점이 있습니다.
다만 코드 파일을 다른 곳에 새로 생성하거나 다른 폴더로 이동하여 내 위치가 바뀌어 버리면, 이는 곧 기준점이 바뀐 것이기 때문에 기존의 상대 경로는 더 이상 사용이 불가능해질 수 있다 (=불안정하다)는 단점이 있습니다.

 

두 방법 각각의 장단점이 명확하기 때문에, '짧은 텍스트 길이에서 오는 편리함'과 '경로 오류 가능성이 적은 안정성' 중 더 가치를 두시는 쪽에 맞추어 사용하시면 되겠습니다 :)

 


 

2. 경로에서 마침표(' . ') 개수에 따른 의미 차이

 

* 마침표 0개 (' / ')   : 가장 최상단 위치부터 시작하겠다 (→ 주로 절대 경로에서 볼 수 있음)
* 마침표 1개 (' ./ ')  : 현재 위치에서부터 시작하겠다 (→ 주로 상대 경로에서 볼 수 있음)
* 마침표 2개 (' ../ ') : 현재 위치로부터 1단계 상위 디렉토리로 이동하겠다 (→ 주로 상대 경로에서 볼 수 있음)

 

경로를 표현한 다양한 방식들을 보면 경로의 가장 앞쪽에 슬래시(' / ') 하나만 있는 경우도, 혹은 마침표가 1개나 2개가 있는 경우들도 보실 수 있으실 거에요. 마침표의 개수에 따라 각각 의미가 다른데요, 그 차이에 대해 얘기해 보겠습니다.

 

1) 마침표 0개 (' / ')

마침표 없이 ' / ' 만 쓰는 것은 '컴퓨터 최상단 위치로부터 시작하겠다'는 의미입니다. 그렇기 때문에 주로 절대 경로에서 볼 수 있는 표기 방법입니다. 

 

2) 마침표 1개 (' ./ ')

마침표를 하나만 쓰는 ' ./ ' 는 '현재 위치에서부터 시작하겠다'는 의미입니다. 그렇기 때문에 주로 상대 경로에서 볼 수 있는 표기 방법입니다.

 

3) 마침표 2개 (' ../ ')

마침표를 2개 쓰는 ' ../ ' 는 '현재 위치에서 한 단계 상위 디렉토리로 이동하겠다'는 의미입니다. 내가 도달하고자 하는 파일이 현재 내 위치보다 더 상위 디렉토리로 이동해야 접근할 수 있을 때 주로 사용하는 방법이며, 이 또한 상대 경로에서 주로 볼 수 있는 표기 방법입니다.

 

나름대로 자세히 설명한다고 하기는 했는데, 그래도 개념 설명만으로는 충분히 와 닿지 않으실 것 같아, 위 3가지를 가상의 예시와 함께 다시 설명 드려 보겠습니다.

 

위와 같은 구조로 폴더와 파일이 있다고 예시를 들어 보겠습니다 :)

 

위 예시는 가상으로 만든 폴더 구조입니다.
Users 폴더 안에 admin이라는 폴더가, 그 안에는 personal_workspace라는 폴더가 있으며, 그 안에는 path1과 path2라는 두 개의 폴더가 있고, 각각 example_1.csv 와 example_2.csv라는 파일을 가지고 있는 구조입니다.
현재 저의 위치는 path1 내부에 있고, example_1.csv에 접근하는 것이 목표라고 가정해 보겠습니다.

 

첫째로 절대 경로입니다.
가장 최상단의 위치에서 목적지까지 전체 경로를 표기하는 방법이기 때문에, 아래와 같이 경로를 표기할 수 있습니다.

/Users/admin/personal_workspace/path1/example_1.csv

 

둘째로 상대 경로입니다.
현재 위치가 path1 내부이고, 그로부터 한 단계 하위 디렉토리에 example_1.csv 파일이 있으므로, 아래와 같이 표기할 수 있습니다.

./example_1.csv

 

셋째로, 현재 위치는 그대로 path1 내부인데 path2 내에 있는 example_2.csv 파일에 접근하는 경우입니다.
이 경우에는 path_1보다 상위 디렉토리인 personal_workplace로 한 번 올라간 다음, 거기서 path_2 안으로 들어가야 example_2.csv 파일로 접근 가능하므로, 아래와 같이 표기할 수 있습니다.

../path2/example_2.csv

 


 

3. 맺는 말

 

오늘은 경로를 설정하는 두 가지 방법마침표 개수에 따른 의미 차이에 대해 알아보았습니다.
앞으로 위 2가지 개념만 잘 숙지하고 계셔도 경로를 공유 받거나 새로운 경로를 세팅하셔야 할 때 유용하실 것이라 생각합니다 ^_^

 

이제 경로를 읽고 쓰실 수 있게 되었으니, 다음 글에서는 내 현재 위치 파악 방법, 특정 위치의 파일명들을 불러오는 방법, 그리고 내 현재 위치를 변경하는 방법, 이렇게 총 3가지에 대해 다뤄 보겠습니다.

 

그러면 오늘 글은 여기서 마치겠습니다.
오늘도 긴 글 읽으시느라 고생 많으셨습니다!

 

우리들의 스트러글(struggle)하는 현생, 화이팅입니다!
반응형