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"」と記述しても大丈夫です。

Python