1. ホーム
  2. python

[解決済み] 現在のファイルのディレクトリのフルパスを取得するにはどうすればよいですか?

2022-03-18 13:21:01

質問

現在のファイルのディレクトリパスを取得したい。 試してみました。

>>> os.path.abspath(__file__)
'C:\\python27\\test.py'

しかし、ディレクトリのパスはどのように取得すればよいのでしょうか?

例えば

'C:\\python27\\'

解決方法は?

特殊変数 __file__ には、現在のファイルへのパスが含まれています。そこからディレクトリを得るには、次のいずれかを使用します。 パスリブ または os.path モジュールを使用します。

Python 3

実行中のスクリプトのディレクトリに対して。

import pathlib
pathlib.Path(__file__).parent.resolve()

現在の作業ディレクトリの場合。

import pathlib
pathlib.Path().resolve()

Python 2と3

実行中のスクリプトのディレクトリに対して。

import os
os.path.dirname(os.path.abspath(__file__))

現在の作業ディレクトリを意味する場合。

import os
os.path.abspath(os.getcwd())

の前後にあることに注意してください。 file はアンダースコアが1つではなく2つです。

また、インタラクティブに実行している場合や、ファイル以外のもの(例:データベースやオンラインリソース)からコードを読み込んだ場合にも注意してください。 __file__ は設定されないかもしれません。なぜなら、quot;current file" という概念がないからです。上記の答えは、ファイルの中にある Python スクリプトを実行するという最も一般的なシナリオを想定しています。

参考文献

  1. パスリブ をpythonのドキュメントに追加しました。
  2. os.path - Python 2.7 , os.path - Python 3
  3. os.getcwd - Python 2.7 , os.getcwd - Python 3
  4. file__ 変数の意味/役割は何ですか?