ディレクトリの作成と削除(pathlibモジュール)
Python の pathlib モジュールで用意されている Path.mkdir メソッドを使って新しくディレクトリを作成する方法、および Path.rmdir メソッドを使って作成済みのディレクトリを削除する方法について解説します。
※ os モジュールを使ってディレクトリを作成したり削除したりする方法については「ディレクトリの作成と削除」を参照されてください。
(Last modified: )
ディレクトリを作成する
新しいディレクトリを作成するには pathlib モジュールで用意されている Path クラスの mkdir メソッドを使用します。
Path.mkdir(mode=0o777, parents=False, exist_ok=False)
ディレクトリを作成します。省略可能な 1 番目の引数には、作成するディレクトリの権限を設定します(省略された場合は 8 進数で 0o777 が設定されます)。省略可能な 2 番目の引数に True を設定した場合、中間ディレクトリを自動で作成します。省略可能な 3 番目の引数に True を設定した場合、作成しようとするディレクトリが既に存在してもエラーとなりません。
実際の使い方ですが、まず作成するディレクトリを示すパスから Path クラスのインスタンスを作成します。そのあとで mkdir メソッドを実行します。
import pathlib p = pathlib.Path('./test/back') p.mkdir()
mkdir メソッドでは必要であれば中間ディレクトリを自動的に作成します。例えば './test/movie/back/2020' というディレクトリを作成するときに './test/movie/back' ディレクトリが存在していない場合、先に中間ディレクトリである './test/movie/back' ディレクトリを作成したあとで指定のパスのディレクトリを作成します。
import pathlib p = pathlib.Path('./test/movie/back/2020') p.mkdir(parents=True)
それでは簡単なサンプルプログラムを作って試してみます。テキストエディタで次のように記述したあと、 sample11-1.py という名前で保存します。
import pathlib p = pathlib.Path('./test/code/java/2020') p.mkdir(parents=True)
プログラムと同じディレクトリの中に test という名前のディレクトリがあり、 test ディレクトリの中に次のようにファイルとディレクトリが含まれています。
その後で、次のように実行してください。
python sample11-1.py
2020 ディレクトリの親ディレクトリである java ディレクトリ、そして java ディレクトリの親ディレクトリである code ディレクトリをそれぞれ作成しました。
ディレクトリを削除する
ディレクトリを削除するには pathlib モジュールで用意されている Path クラスの rmdir メソッドを使用します。
Path.rmdir()
ディレクトリを削除します。ディレクトリは空である必要があります。
実際の使い方ですが、まず削除するディレクトリを示すパスから Path クラスのインスタンスを作成します。そのあとで rmdir メソッドを実行します。
import pathlib p = pathlib.Path('./test/movie') p.rmdir()
削除するディレクトリが空でない場合、 OSError が発生します。
import pathlib
p = pathlib.Path('./test/movie')
p.rmdir()
>> OSError: [WinError 145] ディレクトリが空ではありません。: 'test\\doc'
それでは簡単なサンプルプログラムを作って試してみます。テキストエディタで次のように記述したあと、 sample11-2.py という名前で保存します。
import pathlib p = pathlib.Path('./test/back') p.rmdir()
プログラムと同じディレクトリの中に test という名前のディレクトリがあり、 test ディレクトリの中に次のようにファイルとディレクトリが含まれています。
その後で、次のように実行してください。
python sample11-2.py
パスが示すディレクトリが削除されました。
-- --
Python の pathlib モジュールを使って新しくディレクトリを作成する方法、および作成済みのディレクトリを削除する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
プログラミングや開発環境構築の解説サイトを運営しています。