この記事では、Pythonのコード内からディレクトリを作成・削除する方法を紹介します。
ディレクトリの作成
ディレクトリを作成する方法を見ていきましょう!
パスを指定して作成する[mkdir関数]
osモジュールのmkdir関数を使うことでディレクトリを作成できます。
引数には作成するディレクトリのパスを渡します。
import os
os.mkdir(パス)
サンプル
試しにデスクトップにディレクトリを作成してみましょう。
import os
# デスクトップのパス(使っているPCのデスクトップのパスを指定)
path = '/Users/ユーザー名/Desktop'
# ディレクトリ名
dir_name = 'dir'
# ディレクトリの作成
os.mkdir(os.path.join(path, dir_name))
これでデスクトップにdirディレクトリが作成されました。

パスを指定して再帰的に作成する[makedirs関数]
先ほどの方法ではデスクトップにディレクトリを作成して、その中にサブディレクトリを作成しようとすると2回同じようなコードを書く必要があります。
そんな時はosモジュールのmakedirs関数を使いましょう!
makedirs関数を使うことで引数に渡したパス通りにディレクトリを作成してくれます。
書式
パスで指定した末端ディレクトリとの間にある存在していないディレクトリもまとめて作成することができます。
import os
os.makedirs(パス)
exist_ok引数をTrueにすることで、すでに同じパスのディレクトリが存在していたとしてもエラーを発生させないようにできます。
os.makedirs(path, exist_ok=True)
サンプル
試しにデスクトップにディレクトリとサブディレクトリを作成してみます。
import os
# デスクトップのパス
path = '/Users/ユーザー名/Desktop'
# デスクトップに作成するディレクトリ名
dir_name1 = 'dir'
# dirディレクトリ内に作成するサブディレクトリ名
dir_name2 = 'sub_dir'
# ディレクトリの作成
os.makedirs(os.path.join(path, dir_name1, dir_name2))
このコードを実行するとデスクトップに下の画像のようなディレクトリが作成されます。

dirディレクトリ内にsub_dirディレクトリが作成されています。
ディレクトリの削除
ディレクトリを削除する方法を見ていきましょう!
空のディレクトリの削除[rmdir関数]
空のディレクトリを削除するには、osモジュールのrmdir関数を使います。
引数には削除したいディレクトリのパスを渡します。
import os
os.rmdir(パス)
サンプル
例として、デスクトップに作成したTestディレクトリを削除してみましょう。
import os
# デスクトップのパス
path = '/Users/ユーザー名/Desktop'
# ディレクトリ名
dir_name = 'Test'
# ディレクトリの削除
os.rmdir(os.path.join(path, dir_name))
デスクトップからディレクトリが削除できました。
再帰的に空のディレクトリを削除する[removedirs関数]
osモジュールのremovedirs関数を使うことで、空ディレクトリを末端ディレクトリから親ディレクトリに向かってまとめて削除できます。
import os
os.removedirs(パス)
サンプル
以下のコードでは、デスクトップのdirディレクトリをサブディレクトリごと削除します。
import os
# デスクトップのパス
path = '/Users/ユーザー名/Desktop'
# ディレクトリ名
dir_name1 = 'dir'
# dirディレクトリのサブディレクトリ名
dir_name2 = 'sub_dir'
# 再帰的にディレクトリを削除
os.removedirs(os.path.join(path, dir_name1, dir_name2))
空ディレクトリのみを削除するので大事なデータを削除する心配がありません。
空ではないディレクトリの削除[rmtree関数]
shutilモジュールのrmtree関数を使うことで、ファイルなどが格納されているディレクトリも削除することができます。
import shutil
shutil.rmtree(パス)
サンプル
とりあえずデータを保持しているディレクトリを作成します。
import os
import shutil
# デスクトップに作成するディレクトリのパス
dir_path = '/Users/ユーザー名/Desktop/dir'
# ディレクトリの作成
os.mkdir(dir_path)
# dirディレクトリにtest.txtを作成
with open(os.path.join(dir_path, 'test.txt'), 'w') as f:
pass
コードを実行するとデスクトップにtest.txtを保持したdirディレクトリが作成されます。
デスクトップを確認してみましょう。

それではdirディレクトリを削除してみます。
# dirディレクトリの削除
shutil.rmtree('/Users/ユーザー名/Desktop/dir')
これでデスクトップからdirディレクトリが削除されました。
デスクトップを確認してみてください。
ちなみに、rmtree関数の引数にディレクトリではなく、ファイルのパスを渡すとエラーになるので注意しましょう。
まとめ
今回はソースコード内からディレクトリを作成・削除する方法を解説しました。
コード内からディレクトリを操作することで、ログや設定ファイルを保存するディレクトリを外部に生成することができます。
それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ