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
https://devbruce.github.io/python/py-39-path+function/
'🍃 Language > Python' 카테고리의 다른 글
python에 rusty를 섞는다?! 파이썬 segmentation fault 원인? (0) | 2021.12.03 |
---|---|
[python] Class와 __init__함수 (0) | 2021.09.06 |
[Python] Dict로 문자열 count하기 | setDefault(i,0), get(i,0) (0) | 2021.07.12 |
[Python] 문자열 애너그램(Anagrams) | Counter(), DefaultDict() (0) | 2021.07.12 |
[Python] 커스텀한 기준으로 sort()하기 cmp_to_key() (0) | 2021.07.12 |
[python] 대문자로 변환하기 upper() / capitalize() / title() (0) | 2021.07.11 |