2017-10-16 8 views
0

私は自分のPythonスクリプトを他のフォルダを設定している人が実行できるようにしたいので、Pythonスクリプトが保存されているフォルダへの参照を使用することは意味があります。私のPythonスクリプトにあるフォルダへのパスとは何ですか?

例:「script1.py」というスクリプトが「C:\ My Scripts \ script_1.py」から実行されている場合、「C:\ My Scripts」を使用できる変数に保存します。

しかし、私はそれも仕事を得ることができません。

私は輸入OSとSYSをしましたが、os.path.dirname(__file__)またはos.path.abspath(__file__)を使用すると、エラーメッセージを表示します。sys.executableを使用して

Traceback (most recent call last): 

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

NameError: name '__file__' is not defined 

は私に私はPythonがインストールされている場所にアドレスを与えます(私はそれがない??と思います私が何とか探しているものを教えてください)。

私も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: '_' 

は私が道でのWindows 10からの私のコードを実行していますよ。 Python 3です。

+3

'__file__'がファイルdosen'tを取得しようと、あなたは対話型のセッションでそれを使用しているので、何のファイルがありません、あなたにエラーを与えている、私はそれを知らなかった感覚 – 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__'は実行中の現在のファイルの場所を提供することであり、必ずしもあなたのメインプログラムではないということです。それはあなたが把握しようとしていることに依存していますか? –

関連する問題