Python で現在のファイルのパスを取得する
Python では、多くのファイルやモジュールを扱うことができ、常にファイルシステムと対話しています。ファイルをインポートしたりエクスポートしたりするには、そのようなファイルの正しいパスとディレクトリを知る必要があります。また、現在実行中の Python スクリプトのパスや他のファイルのパスを知ることも不可欠です。
現在の作業ディレクトリは、現在作業している Python のディレクトリです。
このチュートリアルでは、現在のファイルのフルパスと現在の作業ディレクトリを Python で取得する方法を紹介します。
ファイルのパスと現在の作業ディレクトリを取得するための pathlib モジュールの利用
Python 3.x 以降で利用可能な pathlib ライブラリには、ファイルパス関連の問題を扱うクラスやメソッドが含まれています。
以下のコードでは、pathlib モジュールが提供する関数を用いて Python スクリプトのパスを抽出します。
import pathlib
print(pathlib.Path(__file__).parent.absolute())
出力:
C:\Sample\Python
absolute() メソッドはファイルのフルパスを返し、parent() 関数はこのパスからファイルのディレクトリを取得します。
現在の作業ディレクトリを取得するには、上記の関数からファイル名を削除します。以下のコードはその方法を示しています。
import pathlib
print(pathlib.Path().absolute())
出力:
C:\Sample\Python
ファイルのパスと現在の作業ディレクトリを取得するために os モジュールを使用する
os と対話するために os ライブラリが使用され、ファイルのフルパスを取得するために利用可能な関数があります。この方法は Python 2.x でも同様に動作します。
abspath() 関数は必要なファイルのパスを取得し、dirname() 関数はフルパスからディレクトリを取得します。
例えば:
import os
print(os.path.dirname(os.path.abspath(__file__)))
出力:
C:\Sample\Python
関数 dirname() は空の文字列を返すので、ファイルのディレクトリを直接取得することはできません。
また、abspath() 関数の代わりに realpath() 関数を利用することもできます。これはパスからシンボリックリンクが存在する場合にはそれを削除します。
import os
print(os.path.dirname(os.path.realpath(__file__)))
出力:
C:\Sample\Python
現在の作業ディレクトリを取得するには、カレントディレクトリのパスを返す getcwd() 関数を用いることができます。このパスを dirname() 関数に渡してディレクトリを取得することができます。
例えば:
import os
print(os.path.abspath(os.getcwd()))
出力:
C:\Sample\Python
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn