2014-06-18 2 views
0

저는 여러 프로젝트에서 공유 할 파이썬 라이브러리 디렉토리에 파이썬 모듈을 만들었습니다. 그러나이 모듈은 모듈 디렉토리 내의 폴더에있는 데이터 파일을 사용하여 Class of Country 데이터와 그 속성을 구성합니다. 프로젝트에서이 모듈을 실행할 때가되면 모듈은 현재 작업 디렉토리를 참조하여 실행되므로 데이터 파일은 더 이상 로컬이 아닙니다.모듈 디렉토리의 데이터를 사용하는 파이썬 모듈

파이썬 모듈에서 데이터를 참조하는 가장 좋은 방법은 프로젝트 전체에서 사용할 수 있으며 데이터는 모듈과 모듈 개체 구조와 함께 제공되는 것입니다.

예 :

import Classification as cs 
codes = cs.Countries() 

수준의 국가에 대한 __init__(self) 실행, 나는 당신이 원하는 내 이해에 따르면

답변

0

을 모듈 디렉토리에 데이터를 참조 아니라 현재 작업 디렉토리 싶을 때 프로그램이 실행되는 위치에 상관없이 실행 파일의 디렉토리 이름을 찾습니다.

나의 이해를 잘 아래의 경우

솔루션

import inspect 
import os 
import sys 

def get_current_directory(): 
    if getattr(sys, 'frozen', False): 
     application_path = os.path.dirname(sys.executable) 
    elif __file__: 
     application_path = os.path.dirname((inspect.getfile(inspect.currentframe()))) 
    return application_path 

print get_current_directory() 
입니다