[목차]
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)하는 현생, 화이팅입니다!
'퍼포마의 야근근절을 위한 코딩' 카테고리의 다른 글
우리가 사용할 개발 언어 - Python의 장단점 (0) | 2022.10.10 |
---|---|
pandas - read_excel / to_excel 함수 설명 및 활용 예시 (2) | 2022.10.08 |
pandas - read_csv / to_csv 함수 설명 및 활용 예시 (2) | 2022.10.03 |
pandas - 라이브러리 소개 및 향후 글 전개 방향 (0) | 2022.09.28 |
URL - 데이터 형식의 종류 (HTML, CSV, PDF, ...) (0) | 2022.09.21 |