ファイル名またはフォルダー名は、フルパスで使用することも、ファイル名またはフォルダー名を言及するだけでスクリプトで使用することもできます。ルートディレクトリからのファイルまたはフォルダのフルパスは、絶対パスで指定されます。スクリプトでパス名なしでファイル名が使用されている場合、現在の作業ディレクトリがファイルのパス名と見なされ、相対パスと呼ばれます。 Pythonでは、現在の作業ディレクトリは、Pythonスクリプトが実行されるディレクトリの場所に設定されます。現在の作業ディレクトリを取得するために、Pythonには多くのモジュールが存在します。このチュートリアルでは、Pythonでさまざまなモジュールを使用して現在の作業ディレクトリを取得する方法を示しました。
例-1:pathlibモジュールを使用して現在の作業ディレクトリを取得する
のパスクラス pathlibモジュール 実行中のスクリプトの現在の作業ディレクトリを読み取るために使用されます。次のコードを使用してPythonスクリプトを作成し、pathlibモジュールを使用して現在の作業ディレクトリを読み取って印刷します。 NS cwd()メソッド Pathクラスのは、スクリプトが実行されている現在の作業ディレクトリを出力するために使用されます。
#pathlibモジュールからパスをインポートします
からpathlib輸入道
#現在の作業ディレクトリのパスを取得します
current_working_directory=道。cwd(()。
#現在の作業ディレクトリの場所を出力します
印刷(('現在の作業ディレクトリの場所は次のとおりです:')。
印刷((current_working_directory)。
出力:
上記のスクリプトを実行すると、次の出力が表示されます。ここでは、スクリプト名のない現在の作業ディレクトリのパスが出力に表示されています。
例-2:normpath()とabspath()を使用して現在の作業ディレクトリを取得する
osモジュールの使用は、現在の作業ディレクトリを取得するもう1つの方法です。現在の作業ディレクトリを取得するために、osモジュールのパスクラスにさまざまなメソッドが存在します。 normpath()と abspath()メソッド それらの2つです。これらのメソッドは、現在の作業ディレクトリを文字列として返します。これらの関数の目的を確認するには、次のスクリプトを使用してPythonファイルを作成します。
#OSモジュールをインポートする
輸入 あなた
#normpath()関数を使用して現在の作業ディレクトリを出力します
印刷(('現在の作業ディレクトリ(normpath()を使用)は次のとおりです:')。
印刷((あなた。道。dirname((あなた。道。ノルムパス((__ファイル__)。)。)。
#abspath()関数を使用して現在の作業ディレクトリを出力します
印刷(('NS現在の作業ディレクトリ(abspath()を使用)は次のとおりです。)。
印刷((あなた。道。棄権(('。')。)。
出力:
上記のスクリプトを実行すると、次の出力が表示されます。ここでは、スクリプト名のない現在の作業ディレクトリのパスが出力に表示されています。
例-3:realpath()を使用して現在の作業ディレクトリを取得する
NS realpath() 現在の作業ディレクトリを取得する別の方法です。次のスクリプトを使用してPythonファイルを作成し、を使用して現在の作業ディレクトリをスクリプト名で出力します。 realpath()メソッド 。スクリプトでは、 __ファイル__ osモジュールがインポートされるファイルのパス名を含む引数値として。
#OSモジュールをインポートする輸入 あなた
#realpath()関数を使用して現在の作業ディレクトリを読み取ります
real_path= あなた。道。リアルパス((__ファイル__)。
#現在の作業ディレクトリをスクリプト名で出力します
印刷(('NSスクリプト名を持つ現在の作業ディレクトリは次のとおりです。)。
印刷((real_path)。
出力:
上記のスクリプトを実行すると、次の出力が表示されます。ここでは、スクリプト名を持つ現在の作業ディレクトリのパスが出力に表示されています。
例-4:getcwd()を使用して現在の作業ディレクトリを取得する
を使用して getcwd()関数 osモジュールのは、実行中のスクリプトの現在の作業ディレクトリを取得するための最も簡単な方法です。引数は含まれず、CWDを文字列として返します。次のスクリプトを使用してPythonファイルを作成し、の使用を確認します。 getcwd()関数 。現在の作業ディレクトリは、スクリプトの先頭に出力されます。次に、を使用して現在のディレクトリパスを変更します。 chdir()関数 。 NS getcwd()コマンド ディレクトリを変更した後、再度呼び出されます。
#OSモジュールをインポートする輸入 あなた
#getcwd()関数を使用して現在の作業ディレクトリを出力します
印刷(('現在の作業ディレクトリは次のとおりです。NS'、 あなた。getcwd(()。)。
#現在の作業ディレクトリを変更する
あなた。chdir(('/ etc / mail')。
#変更後に現在の作業ディレクトリを印刷します
印刷(('NS変更後の現在の作業ディレクトリは次のとおりです。NS'、 あなた。getcwd(()。)。
出力:
上記のスクリプトを実行すると、次の出力が表示されます。ここでは、ディレクトリを変更する前に、スクリプト名のない現在の作業ディレクトリパスが出力されています。次に、変更されたディレクトリパスが出力されます。
例-5:getcwd()をtry-exceptとともに使用して、現在の作業ディレクトリを取得する
次のスクリプトを使用してPythonファイルを作成し、入力値に基づいて現在の作業ディレクトリを変更し、さまざまなタイプのエラーを処理します。スクリプトを実行することにより、3種類のエラーを処理できます。 NS FileNotFoundErrorエラー 入力から取得したパスが存在しない場合に生成されます。 NS NotADirectoryErrorエラー 入力から取得したパスがディレクトリでない場合に生成されます。 NS PermissionErrorエラー 入力から取得したパスにアクセスできない場合に生成されます。
#osモジュールをインポートする輸入 あなた
#ディレクトリのパスを入力します
cwd= 入力(('現在の作業ディレクトリのパスを入力します。NS')。
試す:
#現在の作業ディレクトリを変更する
あなた。chdir((cwd)。
#getcwd()関数を使用して現在の作業ディレクトリを出力します
印刷(('現在の作業ディレクトリは次のとおりです。NS'、 あなた。getcwd(()。)。
#ディレクトリが存在しない場合はエラーを発生させる
それ外FileNotFoundError:
印刷((「ディレクトリが存在しません。」)。
#入力パスがディレクトリでない場合はエラーを発生させる
それ外NotADirectoryError:
印刷((「%sはディレクトリではありません」%((cwd)。)。
#ディレクトリにアクセスできない場合はエラーを発生させる
それ外PermissionError:
印刷((「ディレクトリを変更する許可が拒否されました。」)。
出力:
パスが存在する場合、上記のスクリプトを実行すると、次の出力が表示されます。ここでは、取得した入力パスが存在し、変更された作業ディレクトリが出力に出力されています。
パスが存在しない場合、上記のスクリプトを実行すると、次の出力が表示されます。
取得したパスにアクセスできない場合、上記のスクリプトを実行した後、次の出力が表示されます。
結論:
このチュートリアルでは、pathlibおよびosモジュールを使用して現在の作業ディレクトリを読み取る方法を、さまざまな例を使用して示します。このチュートリアルでは、ユーザー入力に基づいて現在の作業ディレクトリを変更した後、現在の作業ディレクトリを取得する方法も示しています。