Python で現在実行中のファイルのパスを見つける
Python で現在の実行スクリプトへのパスを取得することは、ファイルにアクセスしたり、さまざまな操作を実行します。ただし、いくつかのアプローチは特定の条件下では失敗する可能性があります。この記事では、さまざまなシナリオでファイル パスを取得するための信頼できる方法について説明します。
既存のアプローチの課題
os.path.abspath(os. path.dirname(sys.argv[0])) および os.path.abspath(os.path.dirname(__file__)) には制限があります。別の Python スクリプトから実行する場合、sys.argv[0] は正しいパスを提供しない可能性があり、__file__ は py2exe スクリプト、IDLE、Mac OS X 環境、および同様のインスタンスでは使用できない可能性があります。
A Universal解決策
これらの問題に対処するための信頼できるアプローチには、inspect モジュールと os モジュールを利用することが含まれます。
<code class="python">from inspect import getsourcefile from os.path import abspath</code>
getsourcefile(lambda:0) を使用すると、次のソース ファイルを取得できます。現在実行中のラムダ関数を使用して、他のメソッドの制限を効果的に回避します。次に、abspath を使用してパスが抽出されます。
シナリオ例
次のディレクトリ構造を考えてみましょう:
C:. | a.py \---subdir b.py
a.py に含まれる:
<code class="python">from inspect import getsourcefile from os.path import abspath print("a.py: File Path =", abspath(getsourcefile(lambda:0))) execfile("subdir/b.py")</code>
b.py に含まれる:
<code class="python">from inspect import getsourcefile from os.path import abspath print("b.py: File Path =", abspath(getsourcefile(lambda:0)))</code>
a.py を実行すると、次のように表示されます:
a.py: File Path = C:\a.py b.py: File Path = C:\subdir\b.py
Thisさまざまな状況でファイル パスを正しく取得できる機能を示します。
以上が現在実行中の Python スクリプトのパスを確実に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。