logo

Pythonで現在のディレクトリを取得する

この記事では、Python で作業ディレクトリを取得および変更する方法について説明します。と協力しながら ファイル処理 ファイルは名前によってのみ参照されることに気づいたかもしれません。 「GFG.txt」であり、そのファイルがスクリプトのディレクトリに存在しない場合、Python はエラーを発生させます。のコンセプトは、 現在の作業ディレクトリ (CWD) ここで重要になります。 CWD をフォルダーとして考えてください。その中で Python が動作しています。ファイルが名前だけで呼び出される場合、Python はそのファイルが CWD で開始されると想定します。これは、ファイルが Python の CWD にある場合にのみ名前のみの参照が成功することを意味します。

注記: Python スクリプトが実行されているフォルダーは、現在のディレクトリと呼ばれます。これは、Python スクリプトが配置されているパスではない可能性があります。



Python OSモジュールとは何ですか?

Python が提供する OSモジュール オペレーティング システムと対話するため。このモジュールは、Python の標準ユーティリティ モジュールに含まれます。 OS モジュール内のすべての関数が上昇します OSエラー ファイル名とパスが無効またはアクセスできない場合、またはその他の引数が正しい型であるにもかかわらずオペレーティング システムで受け入れられない場合。

Python の現在のディレクトリの検索

sys.argv[0] を使用して現在の Python スクリプトのディレクトリを取得します。

この例では、 sys.argv[0] スクリプト ファイルのパスを取得し、 os.path.dirname() パスから現在のディレクトリを抽出します。

Python3








import> os> import> sys> script_directory>=> os.path.dirname(os.path.abspath(sys.argv[>0>]))> print>(script_directory)>

>

>

出力:

現在の Python スクリプトのディレクトリを取得します

現在の Python スクリプトのディレクトリを取得します

Inspect Module を使用して現在の Python スクリプトのディレクトリを取得する

この例では、 Inspection.getfile(inspect.currentframe()) 現在のスクリプト ファイルのパスを返します。 os.path.dirname() パスから現在のディレクトリを抽出します。

Python3




import> inspect> import> os> script_directory>=> os.path.dirname(os.path.abspath(> >inspect.getfile(inspect.currentframe())))> > print>(script_directory)>

>

>

出力:

現在の Python スクリプトのディレクトリを取得します

現在の Python スクリプトのディレクトリを取得します

os.getcwd() を使用して現在の作業ディレクトリを取得します。

この例では、 os.getcwd() Pythonスクリプトのカレントディレクトリを取得します。

Python3




import> os> > print>(>'File location using os.getcwd():'>, os.getcwd())>

>

Linux フォルダーの名前を変更

>

出力:

File location using os.getcwd(): /home/tuhingfg/Documents/Scripts>

注記: 使用する os.getcwd() Python スクリプトとは別のディレクトリから Python コードを実行すると、期待どおりに動作しません。

os.getcwd() を使用したスクリプト以外の別のディレクトリから Python スクリプトを実行すると、予期しない結果が発生する

Pythonスクリプトは内部に配置されます /home/tuhingfg/ドキュメント/スクリプト 。同じフォルダー内からスクリプトを実行すると、正しいスクリプトの場所が表示されます。ただし、ディレクトリを別の場所に変更すると、そのディレクトリの場所が出力されます。それの訳は os.getcwd() スクリプトを実行しているディレクトリを考慮します。これを踏まえた結果、 os.getcwd() も異なります。

Python3




import> os> > print>(>'File location using os.getcwd():'>, os.getcwd())>

>

>

出力:

os.getcwd() を使用してスクリプトの場所を取得する

os.getcwd() を使用してスクリプトの場所を取得する

os.path.realpath() メソッドを使用して Python スクリプトの場所を取得する

os.path.realpath() を使用して、現在の Python スクリプトのパスを取得できます。実際には、Python の os.path.realpath() メソッドは、パス内で見つかったシンボリック リンクを削除することによって、指定されたファイル名の正規パスを取得するために使用されます。特殊な変数 __ファイル__ に渡されます 実パス() メソッドを使用して Python スクリプトのパスを取得します。

この例では、 os.getcwd() そして __ファイル__ 2 つの異なる結果が得られます。スクリプトとは別のフォルダーからスクリプトを実行しているため、 os.getcwd() スクリプトの実行フォルダーに応じて出力が変わります。しかし __ファイル__ 現在の作業ディレクトリに関係なく、一定の結果を生成します。

Python3




import> os> > print>(>'File location using os.getcwd():'>,> >os.getcwd())> > print>(f>'File location using __file__ variable:'>+> >'{os.path.realpath(os.path.dirname(__file__))}'>)>

>

>

出力:

Pythonのディレクトリを取得

Pythonでディレクトリを取得する

注: __file__ モジュールがファイルからロードされた場合、モジュールがロードされたファイルのパス名です。