본문 바로가기
Language/Python

[python] Django에서 절대경로 __file__ 로 지정하기 (os.path)

by 카프리썬 2021. 9. 6.
728x90

 

django 프로젝트를 진행하던중 로컬 디렉토리에 있는 파일을 읽고 쓰는 작업이 많았다.

그런데 이상하게 상대경로로 지정할 경우 오류가 났고, 절대경로를 직접 지정했을때 정상적이였다...

하지만 코드에 이렇게 지정하게 되면 환경마다 계속 코드를 수정해야하는 문제점이 있을 것이다.

 

그래서 검색을 통해 알게된 파이썬 디렉토리 절대경로 지정하는 방법! Django에서 유용하다! 

 

BASE_PATH = os.path.dirname(os.path.abspath(__file__))

__file__ : python의 예약어로, 현재 실행되는 스크립트 파일 위치

os.path.abspath(path) : 절대경로 반환

os.path.dirname(path) : path의 상위 경로까지 포함해서 반환

 

그래서 아예 base_path 지정하고, 이를 기준으로 read/write해야하는 파일들의 경로를 지정했다. 

 

추가로, 관련된 디렉토리 함수를 몇개 더 알아보자면 아래와 같으니 참고하자.

 

os.getcwd() : 현재 작업폴더 얻기

os.path.dir(path) : 경로중 디렉토리명만 얻기

os.path.basename(path) : 경로중 파일명만 얻기

 

os.path.join(path1,path2.. ) : 넘겨받은 path파라미터들을 묶어 하나의 경로로 만들기

os.listdir(path) : 경로에 있는 파일 또는 디렉토리를 리스트로 얻기

 

os.path.exists(path) : 경로에 파일 또는 디렉토리가 존재하는지 체크 (TRUE/FALSE)

os.path.isdir(path) : 디렉토리가 존재하는지 체크 (TRUE/FALSE)

os.path.isfile(path) : 파일이 존재하는지 체크   (TRUE/FALSE)

 

 

출처

https://itmining.tistory.com/122

 

[Python] 파이썬 파일과 디렉토리 경로

서론 BASE_DIR = os.path.dirname(os.path.abspath(__file__)) 조만간 포스팅 할 예정인 파이썬을 이용한 웹 크롤링, 스크래핑 주제를 공부하던 중 막히는 부분이 생겼습니다. 바로 위의 구문입니다. 이를 이해

itmining.tistory.com

https://devbruce.github.io/python/py-39-path+function/ 

 

[Python] os.path

 

devbruce.github.io

 

반응형