Python: カレントディレクトリを移動・取得(表示)する
Pythonでカレントディレクトリを移動したり取得(表示)する場合、 osモジュールにある関数を利用します。 現在のディレクトリを取得する場合は「os.getcwd()」、 移動する場合は「os.chdir()」を使います。
カレントディレクトリを取得
os.getcwd()でカレントディレクトリを取得します。 引数は必要ありません。戻り値はカレントディレクトリが記述された文字列です。 カレントディレクトリのことを作業ディレクトリとも言います。 getcwd()のcwdは「current working directory」の略です。
import os p = os.getcwd() print(p) # D:\test\python print(type(p)) # <class 'str'>
カレントディレクトリを移動
os.chdir()でディレクトリを移動します。 引数には絶対パスか相対パスを指定します。
相対パスで1つ上のディレクトリに移動する場合はドットを使って「../」、 2つ上の場合は「../../」と記述します。 現在のディレクトリを表す場合は「./」です。
import os os.chdir("dir1") # 相対パス os.chdir("d:\\test") # 絶対パス
chdirで存在しないパスを指定した場合はエラー 「FileNotFoundError」が発生します。
ディレクトリの区切り記号について
ディレクトリ(フォルダ)の区切り記号は、Windowsの場合 「\(円記号、またはバックスラッシュ)」か「/(スラッシュ)」を使います。 MacやLinuxは「/(スラッシュ)」です。
OS | 区切り記号 |
---|---|
Windows | \ または \ |
/ | |
Mac/Linux | / |
文字列中で「\ または \」 を使う場合はエスケープする必要があります。 そのため「d:\\test」のように「\\」と2つ続けて記述します。
Windowsの場合、次の2つの指定方法は同じフォルダを挿しています。
"d:\\test\\python" "d:/test/python"
カレントディレクトリを移動するサンプル
os.getcwd()とos.chdir()を使って、 カレントディレクトリを移動、取得(表示)してみます。
Windows環境で次のようなディレクトリ(フォルダ)構成で、 実行ファイルが「d:\test\python」内にあるとします。
d: └ test └ python └ dir1
import os # カレントディレクトリを表示 print(os.getcwd()) # D:\test\python # 相対パスでdir1に移動 os.chdir("dir1") print(os.getcwd()) # D:\test\python\dir1 # 1つ上に移動 os.chdir("../") print(os.getcwd()) # D:\test\python # 絶対パスで移動 os.chdir("d:\\test") print(os.getcwd()) # d:\test
最後の絶対パスで移動している部分は「"d:\\test"」ではなく「/」を使って 「"d:/test"」と記述しても大丈夫です。