空フォルダ削除は「不要な作業ディレクトリを自動で掃除する」ための基本操作
業務自動化では、処理の途中で一時フォルダを作ったり、日付ごとにフォルダを生成したりすることがよくあります。
しかし、処理が終わった後に 中身が空のフォルダが大量に残ると、管理が煩雑になり、誤操作の原因にもなります。
Pythonでは、os.rmdir() と os.listdir() を組み合わせることで、安全に空フォルダだけを削除できます。
ここでは、初心者でも理解しやすいように、基本から実務テンプレートまで丁寧に解説します。
空フォルダ削除の基本:os.rmdir と listdir の組み合わせ
os.rmdir は「空フォルダ専用」であることを理解する
import os
os.rmdir("empty_folder")
Pythonos.rmdir() は 空フォルダしか削除できません。
中にファイルが1つでもあると OSError が発生します。
この性質を逆に利用して、
「フォルダが空かどうかを確認 → 空なら削除」
という安全な処理ができます。
空フォルダかどうかを判定する方法
listdir を使って中身が空か確認する
import os
folder = "work/temp"
if os.path.isdir(folder) and len(os.listdir(folder)) == 0:
os.rmdir(folder)
print("空フォルダを削除しました:", folder)
else:
print("空ではありません:", folder)
Python深掘りポイント
os.path.isdir()でフォルダであることを確認os.listdir()が空リストなら中身がない- 削除前に必ず「空かどうか」を確認するのが安全設計
例題①:処理後の一時フォルダを自動削除する
シナリオ
処理の途中で work/temp を使い、処理終了後に空なら削除したい。
import os
temp_dir = "work/temp"
if os.path.isdir(temp_dir) and len(os.listdir(temp_dir)) == 0:
os.rmdir(temp_dir)
print("一時フォルダを削除しました:", temp_dir)
else:
print("フォルダが空ではないため削除しません:", temp_dir)
Python深掘りポイント
- 一時フォルダは「空なら削除」「中身があるなら残す」が基本
- 誤削除を防ぐために必ず中身チェックを入れる
例題②:フォルダ一覧から「空フォルダだけ」削除する
シナリオ
logs フォルダの中に日付フォルダが大量にあり、空のものだけ削除したい。
import os
root = "logs"
for name in os.listdir(root):
path = os.path.join(root, name)
if os.path.isdir(path) and len(os.listdir(path)) == 0:
os.rmdir(path)
print("削除:", path)
Python深掘りポイント
- 「フォルダであること」と「中身が空であること」の2条件が重要
- 日付フォルダやバックアップフォルダの整理に非常に役立つ
例題③:サブフォルダも含めて空フォルダを再帰的に削除する
シナリオ
階層が深いフォルダ構造の中から、空フォルダだけをすべて削除したい。
import os
root = "project"
for current, dirs, files in os.walk(root, topdown=False):
if len(dirs) == 0 and len(files) == 0:
os.rmdir(current)
print("削除:", current)
Python深掘りポイント
os.walk(..., topdown=False)を使うことで「下から順に」探索できる- 下層の空フォルダを削除 → 上層も空になる → さらに削除できる
- 再帰的な空フォルダ削除が安全に実現できる
pathlib を使った読みやすい書き方
Path.iterdir() と rmdir() を使う
from pathlib import Path
folder = Path("work/temp")
if folder.is_dir() and not any(folder.iterdir()):
folder.rmdir()
print("削除:", folder)
Pythonメリット
any(folder.iterdir())が「中身があるかどうか」を直感的に表現- pathlib はパス操作が読みやすく、初心者にも扱いやすい
空フォルダ削除を安全に行うための考え方
- 削除前に必ず「空かどうか」を確認する
- 誤削除を防ぐために
os.rmdir()を使う(空以外は削除されない) - 再帰削除は
topdown=Falseを使うと安全 - 大量のフォルダを扱う場合はログを残すとトラブルが減る
空フォルダ削除は、業務自動化の「後片付け」を自動化するための重要な操作です。
