Pythonの基礎 - ディレクトリ
概要
Pythonでは、ディレクトリに含まれるファイルの一覧を取得したり、ディレクトリ名を変更したりすることができる。
ディレクトリの作成 / 削除
ディレクトリの作成
ディレクトリを新規作成する場合は、mkdir
関数を使用する。
mkdir
関数は、第1引数に指定したパスが示すディレクトリを新規作成する。
省略可能な第2引数には、新規作成するディレクトリの権限を設定する。(省略された場合、8進数で0o777
が設定される)
os.mkdir(path, mode = 0o777, *, dir_fd = None)
import os
path = './test/movie'
os.mkdir(path)
※注意
mkdir
関数は、中間ディレクトリを作成することができない。
例えば、/home/hoge/img/backディレクトリを作成する場合、/home/hoge/imgディレクトリが存在していない時は、例外FileNotFoundError
が発生する。
また、新規作成するディレクトリが既に存在する場合は、例外FileExistsError
が発生する。
中間ディレクトリも同時に作成する
中間ディレクトリも同時に新規作成する場合、osモジュールのmakedirs関数を使用する。
第1引数に指定したパスが示すディレクトリを新規作成する。
省略可能な第2引数には、新規作成するディレクトリの権限を設定する。(省略した場合は、8進数で0o777が設定される)
省略可能な第3引数にTrueを指定する場合、新規作成するディレクトリが既に存在してもエラーが発生しない。
新規作成するディレクトリが既に存在する場合、引数を省略するか、明示的にexist_ok = Falseを指定すると例外FileExistsErrorが発生する。
os.makedirs(name, mode = 0o777, exist_ok = False)
以下の例では、./test/movie/backディレクトリを新規作成している。
./test/movie/backディレクトリが存在しない場合でも、中間ディレクトリである./test/movieディレクトリを作成後、指定のパスのディレクトリが作成される。
import os
path = './test/movie/back'
os.makedirs(path, exist_ok = True)
ディレクトリの削除
ファイルを削除する場合は、os
モジュールのrmdir
関数を使用する。
rmdir
関数は、第1引数に指定したパスが示すファイルを削除する。
ただし、ディレクトリを削除する場合は、ディレクトリの中身が空である必要があることに注意する。
削除するディレクトリが空ではない場合、例外OSError
が発生する。
os.rmdir(path *, dir_fd = None)
存在しないファイルを削除する場合、例外FileNotFoundError
が発生する。
import os
path = './test/doc'
os.rmdir(path)
ディレクトリとディレクトリの中身の一括削除
ディレクトリとディレクトリ内に存在するファイルを一括して削除する場合、shutil
モジュールのrmtree
関数を使用する。
第1引数に指定したパスが示すディレクトリを削除する。
ディレクトリ内にファイルやディレクトリが含まれている場合は、一括削除する。
shutil.rmtree(path, ignore_errors = False, onerror = None)
import shutil
path = './test/movie'
shutil.rmtree(path)