2017-01-31 11 views
1

파일 (데이터베이스) 경로에 대한 상수가 base_directory로 필요합니다. 파이썬에는 실제 상수가 없다는 것을 알고 있습니다.파일 경로에 대한 파이썬 상수

base_dir = (os.getcwd().rsplit('\\', 2)[0],) 

내가 다른 디렉토리/폴더 레벨/깊이에 여러 파일에서이 값을 필요

나는이 방법을 설정합니다. 그래서 변수가있는 파일을 만들고 필요한 곳에 파일을 가져옵니다.

문제는 base_dir은 가져온 파일의 위치 (경로)가 아니라 현재 파일의 위치를 ​​기반으로 계산된다는 것입니다.

그래서 경로 깊이에 따라 다른 경로가 있습니다.

base_dir 때마다 변경할 수 있지만 var 선언뿐만 아니라 모든 파일에 대해 많은 관련 코드를 반복해야합니다.

경로에 대한 상수를 시뮬레이트하는 방법은 어떻게 수정 할 수 있습니까?

답변

1

os.getcwd을 사용할 필요가 없습니다.

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

을 그리고 os.path.join와 데이터베이스 파일에 대한 경로를 구축 : 당신의 상수 os.path.abspath과 경로를 파일 가져 오기

database_path = os.path.join(file_abs_path, '..', 'path', 'to', 'db) 

는 다음 상수 및 액세스 constants.database_path를 가져옵니다.