Categories: Python

【Python】ディレクトリを削除する方法

この記事では、Python のコード内からディレクトリを削除する方法を紹介します。

ディレクトリを削除するには、以下のような関数を使います。

os.rmdir() 空のディレクトリを削除する。
os.removedirs() 空のディレクトリを再帰的に削除する。
shutil.rmtree() 空でないディレクトリを削除する。

それでは、それぞれ使い方を見ていきましょう。

空のディレクトリの削除[os.rmdir関数]

空のディレクトリを削除するには、osモジュール の rmdir関数 を使います。

import os

os.rmdir(パス)

引数には、削除したいディレクトリのパスを渡します。

削除するディレクトリが存在しない場合は FileNotFoundError、削除するディレクトリが空でない場合は OSError が発生します

サンプル

例として、デスクトップに作成した Testディレクトリ を削除してみましょう。

import os

# デスクトップのパス
path = '/Users/ユーザー名/Desktop'

# ディレクトリ名
dir_name = 'Test'

# ディレクトリの削除
os.rmdir(os.path.join(path, dir_name))

デスクトップからディレクトリが削除できました。

再帰的に空のディレクトリを削除する[os.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))

空ディレクトリのみを削除するので大事なデータを削除する心配がありません。

空ではないディレクトリの削除[shutil.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関数 の引数にディレクトリではなく、ファイルのパスを渡すとエラーになるので注意しましょう。

まとめ

今回はソースコード内からディレクトリを削除する方法を解説しました。

無駄なディレクトリや必要なくなったディレクトリは削除しちゃいましょう。

それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ

Linkディレクトリを作成する方法

ゆうまる

独学でプログラミングを勉強しているおじさん。いろんな言語を勉強したが浅く広くなためあまり仕事につながらない。また忘れっぽいため自分のブログを備忘録としても使っている。産まれてこのかたずっとネコを飼ってる生粋のネコ派。最近お腹が出てきて筋トレに奮闘中!

View Comments

Recent Posts

【Dart】コンストラクタのデフォルト引数について

Dartのコンストラクタのデフォルト引数…

2週間 ago

【Unity】有料アセットを無料で手に入れる方法

この記事では、Unityの有料アセットを…

5か月 ago

【Python】任意の秒数だけ処理を一時停止する方法【sleep()関数】

この記事では、Pythonで任意の秒数だ…

1年 ago

【Python】Wordの文書の新規作成と読み書き

この記事では、Pythonを使ってWor…

1年 ago

【Python】メタクラスって結局なんなの?

この記事では、Pythonのメタクラスに…

1年 ago