2019년 3월 18일 월요일

python 에서 상위 폴더 import 하기(How to import a file which is in upper folder at python)

python에서 상위 폴더에 있는 파일을 import 하는 경우가 있습니다. 환경 변수를 이용할 수 도 있지만 간단하게 소스 내에서 작업이 가능합니다.
아래와 같이 하면 현재 있는 소스 파일 기준으로 (상대경로) "../../gather/" 위치 경로를 추가할 수 있습니다. 아래 소스에서 database 는 import 하고자 하는 파일입니다.

예제 소스
import os
import sys
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '../../gather/')))
import database

내부 함수를 자세히 알아보면 다음과 같습니다.
__file__ : 현재 소스 파일의 이름을 가져옵니다. (전체 경로 포함)
os.path.dirname : 현재 소스 파일의 폴더 경로만 가져옵니다.
os.path.join : 폴더와 파일을 결합합니다.
os.path.abspath : 절대 경로로 변경합니다.
sys.path.append : python의 (import 가능한)경로를 추가합니다.

댓글 없음:

댓글 쓰기