2017-10-16 16 views
0

파이썬 스크립트가 다른 폴더를 설정 한 사람들도 실행할 수 있기를 원합니다. 그래서 파이썬 스크립트가 저장된 폴더에 대한 참조를 사용하면 많은 의미가 있습니다.내 파이썬 스크립트에있는 폴더의 경로는 무엇입니까?

예 : 내 스크립트 "script_1.py"가 "C : \ My Scripts \ script_1.py"에서 실행되는 경우 "C : \ My Scripts"를 사용할 수있는 변수에 저장하려고합니다.

그러나, 나는 너무 일을 할 수 없습니다.

나는 수입 OS 및 SYS를했지만, os.path.dirname(__file__) 또는 os.path.abspath(__file__)을 사용하면 오류 메시지가 있습니다 :

Traceback (most recent call last): 

File "<ipython-input-24-1830932ce69b>", line 1, in <module> 
os.path.dirname(__file__) 

NameError: name '__file__' is not defined 

sys.executable을 사용하여 나에게 내 파이썬이 설치되어있는 곳으로 주소 (나는 그렇지 않습니다? 생각을 제공을 아무리해도 찾고있는 것을 줘).

또한 os.environ['_']을 시도하는 조언을 받았다하지만 제공 :

Traceback (most recent call last): 

File "<ipython-input-26-6c75f8b10c6d>", line 1, in <module> 
os.environ['_'] 

File "D:\Continuum\Anaconda3\lib\os.py", line 669, in __getitem__ 
    raise KeyError(key) from None 

KeyError: '_' 

나는 그런데 윈도우 10에서 내 코드를 실행하고 있습니다. 그것은 파이썬 3입니다.

+3

'__file__'는 대화 형 세션에서 사용하고 있기 때문에 의미가 – jonatan

+0

@jonatan 난 몰랐어하게 나던 파일을 얻으려고, 어떤 파일이 없다, 당신에게 오류를 제공하지만됩니다 많은 의미가 있습니다. 감사. –

답변

1

이것은 스크립트의 위치를 ​​알려줍니다.

import os 
import sys 
script_location = os.path.split(os.path.realpath(sys.argv[0]))[0] 
+0

언제 이것이'script_location = __file__'보다 나은가요? 가져온다면,'__file__'은 여전히 ​​작동 할 것이지만, 그렇지 않습니다. – jonatan

+0

좋은 질문 ... 절대로 그것에 대해 생각 해보지 마십시오. 유일한 차이점은'__file__ '은 현재 실행중인 파일의 위치를 ​​알려주는 것이지 반드시 메인 프로그램이 아니라는 것입니다 ... 그래서 당신이 알아 내고자하는 것에 달려 있습니다. –