2016-09-07 2 views
0
예비

를 기준으로. 올바른 용어인지 확실하지 않습니다. 내 파이썬 스크립트의 위치와 관계없이 import myFile 코드 줄이있는 경우 myFile.pyfolder_default 인 경우 코드 줄이 성공합니다.액세스 파일 가져 오기 파이썬 모듈

내 문제 :

folder_default에서, 내가 가진 :

  1. useful_file_1.txt라는 텍스트 파일이 포함 useful_files라는 하위 폴더.
  2. my_misc.py이라는 python 스크립트.

에는 np.loadtxt('useful_files/useful_file_1.txt')과 유사한 행이 있습니다. useful_files/useful_file_1.txtmy_misc.py을 가져 오는 python 파일에 상대적인 폴더 경로가 아니기 때문에 folder_default이 아닌 위치의 python 파일에서 import my_script을 사용하면이 행이 작동하지 않습니다. 글로벌 파일 경로를 사용하지 않으려는 경우이를 피할 수 있습니다.

가져온 파이썬 모듈에 상대적인 파일 경로를 사용하여 파일에 액세스 할 수 있습니까? 예를 들어, 해당 모듈을 가져 오는 파이썬 스크립트와 관련이 없습니까?

질문이 불분명 한 경우 알려 주시기 바랍니다. 실제로 사물을 단순화하기를 바라는 마음으로 내 컴퓨터에 실제로 설치되어있는 위조 된 최소한의 버전을 작성하려고했지만, 실제로 사물을 만드는 경우 변경할 수 있습니다. 더 혼란 스럽다.

감사합니다.

답변

0

모듈의 getfile 메서드를 사용하여 현재 모듈의 경로를 inspect.getfile(inspect.currentframe())으로 가져올 수 있습니다. 예 :

# File : my_misc.py 
import os, inspect 

module_dir_path = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) # get path to the directory of current module 
useful_file_path = os.path.join(module_dir_path,'useful_files','useful_file_1.txt') 
# path stored in useful_file_path. do whatever you want! 

np.loadtxt(useful_file_path) 
관련 문제