【Python3】os モジュールを使ったフォルダの作成・削除のやり方
Python 標準ライブラリ(Python 側に既に埋め込まれていてインストール不要のライブラリ)の os モジュール。
ファイルの自動処理を Python で行う際に必ず使うので、使い方をメモしておく。
今回はフォルダの作成・削除全般について。
インストール不要だが、モジュールのインポートは必要なので最初にしておく。
import os
フォルダの作成:mkdir / makedirs
存在する親フォルダの中にフォルダを作成する場合は os.mkdir()。
親フォルダがないのにその下にフォルダを作成しようとすると FileNotFoundError になる。
既存のフォルダを作成しようとすると FileExistsError になる。
参考:os.mkdir:os --- 雑多なオペレーティングシステムインターフェース — Python 3.12.1 ドキュメント
親フォルダが存在するか分からない、中間フォルダも作成したい場合はos.makedirs()。
参考:os.makedirs:os --- 雑多なオペレーティングシステムインターフェース — Python 3.12.1 ドキュメント
# 新規作成するフォルダ(test_dir)のパス new_dirpath = r"C:\test_dir" # 新規作成するフォルダ(sub)のパス sub_dirpath = r"C:\test_dir_02\sub" # mkdir:フォルダを新規作成 os.mkdir(new_dirpath) # makedirs:中間フォルダもまとめて新規作成 # フォルダが既に存在すれば、FileExistsError となる os.makedirs(sub_dirpath)
中間フォルダの存在確認をしなくてもフォルダ作成ができるので、makedirs の方が便利(mkdirs ではないので注意)。
また、makedirs の場合、引数 exist_ok (初期値:False)を指定すれば FileExistsError を回避できる。
この引数は mkdir には存在しない。
os.makedirs(sub_dirpath, exist_ok=True)
フォルダの削除:rmdir / removedirs
空のフォルダを削除する場合は os.rmdir()。
空でないフォルダを削除しようとすると OSError になるので注意。
また、存在しないフォルダを削除しようとすると FileNotFoundError になる。
参考:os.rmdir:os --- 雑多なオペレーティングシステムインターフェース — Python 3.12.1 ドキュメント
また、親フォルダもまとめて空のフォルダを削除する場合は os.removdirs()。
パスの末端のフォルダから再帰的に削除し、空でないフォルダが現れるまで削除を続ける。
パスの末端のフォルダが空のフォルダでない場合 OSError になる。
参考:os.removedirs:os --- 雑多なオペレーティングシステムインターフェース — Python 3.12.1 ドキュメント
# フォルダパス dirpath = r"C:\test_dir" sub_dirpath = r"C:\test_dir_02\sub" # rmdir:空のフォルダを削除 os.rmdir(dirpath) # removedirs:空のフォルダを再帰的に削除 os.removedirs(sub_dirpath)
ファイルの削除:remove
ファイルを削除する場合は os.remove()。
フォルダを削除しようとすると PermissionError になるので注意。
# ファイルパス filepath = r"C:\test_dir\test_file.txt" os.remove(filepath)
なお、ファイルの作成方法は別記事にて。
後日追記。