절대경로 : 해당 파일의 전체 경로(url).
ex. C:/home/Users/lecture/test.py
상대경로 : 현재 해당 파일의 위치를 기준으로 연결하는 파일의 상대적인 경로
ex. ../lecture/test.py
문제 : 아래에서 현재 C:/data/MixSNIPS/NIPS_2/train.txt의 파일에 위치해 있고, data가 최상위 파일이라고 가정하자.
이때 rt-polarity.pos의 파일을 사용하기 위해 경로를 어떻게 설정해줘야 할까?

/ : 가장 최상의 디렉토리 (root)
정답 : /data/MixSNIPS/NIPS_2/rt-polarity.pos
./ : 현재 디렉토리
../ : 상위 디렉토리
정답 : ../../MR/rt-polarity.pos
작업을 하다가 같은 코드를 돌렸는데 경로를 인식하지 못한다거나, 경로를 원격서버에서 복사하여 윈도우로 붙여넣었는데 슬래시 방향이 다른 경우가 있었을 것이다. 각각의 차이는 다음과 같다.
Window, MacOS 등의 운영체제에서 슬래시(/)를 사용해서 디렉토리 경로를 나타낸다.Linux, Unix 등의 운영체제에서 백슬래시(\)를 사용해서 디렉토리 경로를 나타낸다.sys.path.append(os.path.dirname(os.path.abspath(os.path.dirname(os.path.abspath(os.path.dirname(__file__))))))
__file__ : 현재 실행중인 파이썬 파일의 경로를 나타낸다. 이는 파이썬 스크립트 실행 시, 어떤 경로로 실행하느냐에 따라 상대경로 또는 절대경로가 될 수 있다.
ex. 터미널에서 python project/example.py를 통한 파일 실행 시, __file__는 project/example.py이다.
ex. python example.py를 통한 실행일 경우, example.py가 된다.
os.path.abspath(path) : 절대경로로 변환한다.
os.path.dirname(path) : 주어진 경로에서 디렉토리의 이름을 추출한다. 즉, 파일 이름을 제외한 디렉토리 경로를 반환한다.
sys.path.append(path) : 파이썬 모듈을 찾을 수 있는 경로 목록인 sys.path에 새로운 경로를 추가한다.
sys.path.append(os.path.dirname(os.path.abspath(os.path.dirname(__file__)))) : 현재 실행하는 파이썬 파일의 한 단계 상위 폴더를 시스템 환경변수에 추가한다.
ex. home/Users/lecture/test.py 경로의 파일을 실행할 경우, home/Users/lecture디렉토리가 모듈 탐색 경로에 추가된다.
sys.path.append(os.path.dirname(os.path.abspath(os.path.dirname(os.path.abspath(os.path.dirname(__file__)))))) : 현재 실행하는 파이썬 파일의 두 단계 상위 폴더를 시스템 환경변수에 추가한다.
ex. home/Users/lecture/test.py 경로의 파일을 실행할 경우, home/Users디렉토리가 모듈 탐색 경로에 추가된다.