Pythonを使用して指定されたファイルへのパスを検索します

Pythonを使用して指定されたファイルへのパスを検索します

__file__ を使用して、実行中のスクリプト ファイル .py の場所 (パス) を取得できます。 __ファイル__ 他のファイルを読み取るのに便利で、実行中のファイルの現在の場所がわかります。バージョンによって異なります。 Python 3.8 以前では、__file__ は実行時に指定されたパスを返します。 パイソン 指示。

相対パスが指定されている場合は、相対パスを取得できます。絶対パスを指定すると、絶対パスが返されます。ただし、Python 3.9 以降では、__file__ は常に絶対パスを返します。 OSモジュール さまざまなユーティリティを提供します。

OS を使用して Python で現在のディレクトリを取得する方法

OS を使用して Python で現在のディレクトリを取得する方法は数多くあります。ここでは、以下の OS で Python でカレント ディレクトリを取得する一般的に使用される方法をいくつか使用します。

  • Path.cwd() の使用
  • 使用する os.getcwd()
  • pathlib.Path().absolute() の使用
  • OSを使用しています。 パス.ベース名
  • 使用する os.path.abspath

Path.cwd() を使用して、指定されたファイルへのパスを検索します。

ここでは、Current Working Directory (CWD) の考え方が重要な位置を占めます。考えてみましょう CWD Python は、ファイルが名前だけで呼び出される場合、ファイルが CWD で開始されると想定するため、名前のみの参照は、ファイルが Python の CWD にある場合にのみ機能します。 Path.cwd() は現在のディレクトリを返します。

Python3




from> pathlib> import> Path> print> (Path.cwd())>

出力:

C:Usersint.suraj.gupta 

OSを使用してPythonで現在のディレクトリを取得する os.getcwd() を使用する

現在の作業ディレクトリの絶対パスを取得できます。したがって、使用されているバージョンに応じて、相対パスまたは絶対パスのいずれかが取得されます。 Python で現在の作業ディレクトリを取得するには、os. getcwd () 方法。 Python OS モジュールのこの関数は、現在の作業ディレクトリへの絶対パスを含む文字列を返します。

Python3




import> os> print> (> 'Get current working directory : '> , os.getcwd())>

出力:

Get current working directory : C:Usersint.suraj.gupta 

OSを使用してPythonで現在のディレクトリを取得する 使用して pathlib.Path().absolute()

Pythonのこの機能は、 OSモジュール 現在の作業ディレクトリへの絶対パスを含む文字列を返します。

Python3




import> pathlib> # current working directory> print> (pathlib.Path().absolute())>

出力:

C:Usersint.suraj.gupta 

os.path.basename を使用して、指定されたファイルへのパスを検索します。

以下の方法で実行中のファイルのファイル名とディレクトリ名を取得できます。理解すべき重要なこと __ファイル__ インタプリタが実行時にそれを調整するので、 パイソン スクリプトが複数のモジュールを使用する場合、どのファイルを処理しているかを認識します。 Path( file__) を呼び出す利点は、現在作業しているパスとファイルを含む文字列が返されることです。

  • ファイルの変更中に __file__ を呼び出すことができます。その結果、シェル インタプリタから呼び出そうとしても実行されません。
  • __file__ は次の環境では機能しません ジュピターノートブック コンテクスト。

Python3




import> os> print> (> 'File name : '> , os.path.basename(__file__))> print> (> 'Directory Name: '> , os.path.dirname(__file__))>

出力:

os.path.abspath を使用して、指定されたファイルへのパスを検索します。

複雑に聞こえるかもしれませんが、os.path.abspath() は単に、このメソッドがこの関数の引数として指定されたパスへのパス名を返すことを意味します。ドキュメントでは、このメソッドはパス名 path の正規化された絶対化バージョンを生成すると主張しています。

例 1: 実行中のファイルの絶対パスを取得します。

Python3




import> os> print> (> 'Absolute path of file: '> ,> > os.path.abspath(__file__))> print> (> 'Absolute directoryname: '> ,> > os.path.dirname(os.path.abspath(__file__)))>

出力:

例 2: os.path.abspath()で絶対パスを指定するとそれがそのまま返されるので、__file__が絶対パスの場合は、 os.pathを設定してもエラーは発生しません。 絶対パス (__ファイル__)

Python3




import> os> pythonfile> => 'pathfinding.py'> # if the file is present in current directory,> # then no need to specify the whole location> print> (> 'Path of the file..'> , os.path.abspath(pythonfile))> for> root, dirs, files> in> os.walk(r> 'E:geeksforgeekspath_of_given_file'> ):> > for> name> in> files:> > > # As we need to get the provided python file,> > # comparing here like this> > if> name> => => pythonfile:> > print> (os.path.abspath(os.path.join(root, name)))>

出力: