ホームページ >バックエンド開発 >Python チュートリアル >Python で実行ファイルのパスを確実に特定するにはどうすればよいですか?
現在実行中の Python スクリプトへのパスを特定することは、さまざまなアプリケーションにとって重要な側面です。ただし、さまざまなシナリオで機能する「普遍的な」アプローチを見つけるのは困難な場合があります。この記事では、いくつかの方法を検討し、それらに関連する制限に対処し、最終的には包括的な解決策を提示します。
path = などのメソッドを介して、別のディレクトリにある別のスクリプトからスクリプトが実行される場合、このアプローチは失敗します。 os.path.abspath(os.path.dirname(__file__)): このメソッドは、
実行コンテキストに関係なく、現在実行中のファイルのパスを取得するには、inspect モジュールと os モジュールの関数を組み合わせて使用できます。
from inspect import getsourcefile from os.path import abspath path = abspath(getsourcefile(lambda:0))
このソリューションは、次のようなさまざまなシナリオでソース ファイル パスを取得する一貫したアプローチを提供します。
次のディレクトリ構造を考慮します:
C:. | a.py \---subdir b.py
a.py 内のコード:
#! /usr/bin/env python import os, sys print "a.py: os.getcwd()=", os.getcwd() print execfile("subdir/b.py")
subdir/b.py 内のコード:
#! /usr/bin/env python import os, sys print "b.py: os.getcwd()=", os.getcwd() print
Python a.py の出力は次のとおりです。 :
a.py: os.getcwd()= C:\ b.py: os.getcwd()= C:\zzz
これは、os.getcwd() が実行コンテキストの作業ディレクトリを反映していることを示しています。これは、実行されているスクリプトの場所とは異なる場合があります。対照的に、提案された解決策 (abspath(getsourcefile(lambda:0))) は、実行コンテキストに関係なく、一貫してスクリプトのソース ファイル パスを生成します。
以上がPython で実行ファイルのパスを確実に特定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。