作業ディレクトリは、作業中の現在のディレクトリであり、そこからスクリプトが実行されます。このディレクトリ内では、多くのファイル(その中にあるファイル)にアクセスできます。ただし、ディレクトリを変更したり、ファイルとフォルダ間を行ったり来たりする必要がある場合があります。このチュートリアルでは、Pythonで作業ディレクトリを変更する方法を学習します。
OSモジュール
そもそも、これを実現するには、Pythonのosモジュールが必要です。プリインストールされているので、何もインストールする必要はありません。 OSモジュールは通常、Pythonで使用され、システム上のファイルやフォルダーを操作、管理、および変更します。たとえば、ディレクトリの作成/削除、作業ディレクトリの変更、ウォークスルーファイル、ファイルの存在の確認などができます。言うまでもなく、これは非常に便利なモジュールです。
現在の作業ディレクトリを取得する
現在の作業ディレクトリを取得するには、 getcwd()メソッド osモジュールから。ここでは引数が渡されないことに注意してください。私の場合、出力は / home / kalyani / PycharmProjects / pythonProject1 Ubuntuマシン(PyCharmを実行)。これは、メインスクリプト– main.py –がこのフォルダー(pythonProject1)内にあることを意味します。そして、作業ディレクトリ、何よりもまずフォルダに注意してください!
輸入 あなた
#現在の作業ディレクトリを取得します
カレントディレクトリ= あなた。getcwd(()。
印刷((「現在の作業ディレクトリは%sです」% カレントディレクトリ)。
現在の作業ディレクトリの変更
作業ディレクトリの変更は、chdir()メソッドを使用すると簡単です。このメソッドは、文字列としての新しい場所へのパスという1つの引数を取ります。
輸入 あなた
#現在の作業ディレクトリを取得します
カレントディレクトリ= あなた。getcwd(()。
印刷((「現在の作業ディレクトリは%sです」% カレントディレクトリ)。
最初に行うことは、作業ディレクトリへの新しいパスを設定することです。 Ubuntuでは、これは非常に簡単です!
#新しい作業ディレクトリを設定しましょうnew_working_directory= '/ home / kalyani / Desktop / PythonDirectory'
Windowsでは、ディレクトリを定義するために二重円記号を使用する必要があります。
#new_working_directory = 'C:\ Users \ never \ Desktop \ PythonDirectory'
次に、try-except句を定義します。パスが存在する場合は、chdir()メソッドを使用して、作業ディレクトリを新しい作業ディレクトリに変更します。パスがディレクトリでない場合、エラーがスローされます。
試す:あなた。chdir((new_working_directory)。
印刷((「作業ディレクトリが変更されました!」)。
印刷(('WD:%s'%あなた。getcwd(()。)。
それ外NotADirectoryError:
印刷((「ディレクトリを選択していません。」)。
それ外FileNotFoundError:
印刷(('フォルダが見つかりませんでした。パスが正しくありません。」)。
それ外PermissionError:
印刷((「このフォルダ/ファイルにアクセスできません。」)。
完全なコードは次のようになります。
輸入 あなた#現在の作業ディレクトリを取得します
カレントディレクトリ= あなた。getcwd(()。
印刷((「現在の作業ディレクトリは%sです」% カレントディレクトリ)。
#新しい作業ディレクトリを設定しましょう
#new_working_directory = '/ home / kalyani / Desktop / PythonDirectory'
new_working_directory=NS'NS: U仕えるNSこれまでNSesktopNSythonDirectory '
試す:
あなた。chdir((new_working_directory)。
印刷((「作業ディレクトリが変更されました!」)。
印刷(('WD:%s'%あなた。getcwd(()。)。
それ外NotADirectoryError:
印刷((「ディレクトリを選択していません。」)。
それ外FileNotFoundError:
印刷(('フォルダが見つかりませんでした。パスが正しくありません。」)。
それ外PermissionError:
印刷((「このフォルダ/ファイルにアクセスできません。」)。
実際、間違いはさまざまな種類の例外を引き起こす可能性があります。
私。 NotADirectoryError:
ここで、パスまたは新しい作業ディレクトリに対して次のコードを記述したインスタンスがあるとします。
new_working_directory= 'NS:\ユーザー\一度もない\デスクトップ\PythonDirectory\text.txt 'ここで注意できるのは、text.txtというテキストドキュメントへのパスを指しているということです。そして後者はNotADirectoryErrorとして知られているエラーをスローします。つまり、パスはある種のディレクトリを指している必要があります。
ii。 FileNotFoundError:
パスが存在しない場合、FileNotFoundErrorがスローされます。したがって、今のところ、デスクトップにPythonDirectoryという名前のディレクトリがなく、パスを次のように設定するとします。
new_working_directory= 'NS: U仕えるNSこれまでNSesktopNSythonDirectory 'それは投げます FileNotFoundError 。このエラーは、ポイントしているディレクトリが存在しないか、見つからなかったことを意味します。
iii。 PermissionError:
に PermissionError 選択したディレクトリを変更またはアクセスするための適切な権限がユーザーにない場合に発生します。
iv。構文エラー:
パスに構文エラーがあると、構文エラーが発生します。 Windowsでは、次のように記述します。
new_working_directory= 'NS: U仕えるNSこれまでNSesktopNSythonDirectory 'シンサックスエラーがスローされます!ただし、構文エラーは、評価、インポート、または実行する必要があるため、キャッチするのがはるかに困難です。そのため、try-exceptブロックを作成すると、そのようなエラーを見つけるのが難しくなります。
Windowsでは、エラーを回避するために、エラーがスローされないように、パスを3つの異なる方法のいずれかで書き出すことができます。
方法1:この方法では、文字列を設定する前にrを追加します。
new_working_directory=NS'NS: U仕えるNSこれまでNSesktopNSythonDirectory '方法2:二重の円記号を使用します。
new_working_directory= 'NS:\ユーザー\一度もない\デスクトップ\PythonDirectory '方法3:スラッシュを1つ使用します。
new_working_directory= 'C:/ Users / never / Desktop / PythonDirectory'パスモジュール
パスモジュールを使用して作業ディレクトリを変更することもできます。まず、次のようにパスをインストールします(モジュールへのリンクも指定しました)。
pipインストールパス((https:// pypi。組織/ project / path /)。
次に、次のように記述します。
から道輸入道輸入 あなた
まず、osモジュールとgetcwd()メソッドを使用して現在の作業ディレクトリを確認しましょう。
#現在の作業ディレクトリを確認しましょうcwd= あなた。getcwd(()。
印刷(('現在の作業ディレクトリは次のとおりです:%s'%cwd)。
印刷(('---------------------------------------------')。
次に、新しい作業ディレクトリへのパスを設定します。この場合、Windowsマシンで例を設定することを選択しました。
#新しい作業ディレクトリへのパスを設定しますnew_path= 'NS:\ユーザー\一度もない\デスクトップ\PythonDirectory '
Path()を使用して、作業ディレクトリを変更します。 Path()は、ここでは1つの引数のみを取ります。新しい作業ディレクトリへの実際のパスであり、chdir()メソッドを使用してタスクを実行します。
#作業ディレクトリを変更する道((new_path)。。chdir(()。
作業ディレクトリが変更されているかどうかを再確認してください。そしてここで、あなたが写真で見ることができるように、作業ディレクトリは確かに変更されました!
#作業ディレクトリを再確認してください#変更されましたか?
cwd= あなた。getcwd(()。
印刷(('新しい作業ディレクトリは%sです'%cwd)。
作業ディレクトリの変更は簡単な作業であり、1つの方法、chdir(path)メソッドが必要です。ただし、WindowsマシンとLinuxマシンのどちらを使用しているかによって、パスを文字列として入力する方法に注意する必要があります。間違って入力すると、エラーが発生する可能性があります。
ハッピーコーディング!