Python × 業務効率化 メモ

Python初心者による業務効率化・RPA関連の学習メモ / 資格勉強の記録

【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)


なお、ファイルの作成方法は別記事にて。

後日追記。