プログラム実行ファイルのパスを取得するPythonメソッド

不言
リリース: 2018-04-27 10:16:01
オリジナル
6910 人が閲覧しました

以下はプログラム実行ファイルのパスを取得するためのPythonメソッドです(推奨)。参考値が高く、皆様のお役に立てれば幸いです。一緒に見てみましょう

1. 現在実行中のメインスクリプトメソッドを取得します: sys.argv[0] と _ file _

(1) sys.argv

A を Python に渡します。 script コマンドパラメータのリスト。 sys.argv[0] はスクリプトの名前です。通常、実行可能ファイルの絶対パスを取得するには、os.path.abspath(sys.argv[0]) を使用します。

dirname, filename = os.path.split(os.path.abspath(sys.argv[0])) 
os.path.realpath(sys.argv[0])
ログイン後にコピー

sys.argv がコマンド ラインで実行される場合、インタープリターのパスが返されます: [' /Library/Frameworks/Python.framework/Versions/3.6/bin/ipython3']

(2)_ _ file_ _

現在の実行モジュールが存在するパスを取得します。通常は相対パスで見つかります。os.path を使用します。 .abspath(_ _ file_ _) は、実行可能ファイルの絶対パスを取得します:

dirname, filename = os.path.split(os.path.abspath( _ _ file_ _)) 
os.path.realpath(_ _ file_ _)
ログイン後にコピー

注: Python コンソールで print _ _ file _ を直接使用すると、名前「 _ file _ 」が定義されていないエラーが発生します。現時点ではどのスクリプトでも実行されていないため、当然 _ file _ の定義はありません。

(3) sys.argv[0] と _ _ file _ _ の違い: がメインの実行ファイルにある場合、両者に違いはありませんが、別のファイルにある場合、 2 つのファイル .py と b.py は異なります。

a.py の実行結果は次のとおりです。

上記の結果: 両方とも a.py の場合、両方の結果は 0 になります。 異なりますが、a に b をインポートするときに実行される sys.argv[0] は、メインの実行ファイルである a.py を参照します。一方、_ _ file_ _ b.py

2.sys. path

モジュール検索パスの文字列リストを出力します。環境変数 PYTHONPATH によって初期化されます。はディレクトリのリストです。sys.path[0] は、Python インタープリタを呼び出す現在のスクリプトが配置されているディレクトリ、つまりメイン実行ファイルの親ディレクトリです。

例: /user/ybp/a.py: print(sys.path[0])==>/user/ybp のファイル a.py で実行した場合、

コマンドラインで実行すると空の文字列が返されます;

3. os.path はシステム環境変数であり、os.path[0] はなく、os.path にはいくつかのメソッドがあることに注意してください。 (1)os.path.split(path)

パス名を先頭と末尾のペアに分割します。末尾のスラッシュは決してありません。入力パスがスラッシュで終わる場合、空のトレーラーが取得されます。 入力パスにスラッシュがない場合、ヘッダーフィールドは空になります。入力パスが空の場合、結果の先頭と末尾は空になります。 https://docs.python.org/2/library/os.path.html#os.path.split

(2)os.path.realpath(path)

特定のファイルを返すname コマンドラインから絶対パスで実行できます。 https://docs.python.org/2/library/os.path.html#os.path.realpath

4.os.getcwd() は現在の作業パスを返しますが、必ずしもそうする必要はありません。スクリプトで実行すると、このコマンドはコマンドラインで実行できる pwd と同等であり、絶対パスが返されます

関連推奨事項: CSV テキストから指定されたデータを取得する Python メソッド



以上がプログラム実行ファイルのパスを取得するPythonメソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート