Pythonでディレクトリ作成!mkdir・makedirsの使い分けと実践テクニック
Pythonでディレクトリ(フォルダ)を作成する方法には、os.mkdir()とos.makedirs()があります。本記事では、それぞれの特徴と使い分け、実践的なサンプルコードを詳しく解説します。
os.mkdir()の基本的な使い方
単一ディレクトリの作成
import os
# 単一ディレクトリを作成
os.mkdir('new_folder')
既存チェック付きディレクトリ作成
import os
# ディレクトリが存在しない場合のみ作成
if not os.path.exists('new_folder'):
os.mkdir('new_folder')
os.makedirs()の使い方
階層ディレクトリの一括作成
import os
# 複数階層のディレクトリを一括作成
os.makedirs('parent/child/grandchild')
exist_okパラメータの活用
import os
# 既存ディレクトリでもエラーにしない
os.makedirs('parent/child', exist_ok=True)
pathlib.Pathを使った現代的な方法
Pathオブジェクトでディレクトリ作成
from pathlib import Path
# 単一ディレクトリ作成
Path('new_folder').mkdir()
階層ディレクトリ作成
from pathlib import Path
# 複数階層+既存OK
Path('parent/child/grandchild').mkdir(parents=True, exist_ok=True)
実践的な使用例
プロジェクト構造の自動作成
import os
# プロジェクト用ディレクトリ構造を作成
dirs = ['src', 'tests', 'docs', 'data/raw', 'data/processed']
for dir_path in dirs:
os.makedirs(dir_path, exist_ok=True)
日付別ディレクトリの作成
import os
from datetime import datetime
# 今日の日付でディレクトリ作成
today = datetime.now().strftime('%Y%m%d')
log_dir = f'logs/{today}'
os.makedirs(log_dir, exist_ok=True)
エラーハンドリング
PermissionErrorの対処
import os
try:
os.mkdir('protected_folder')
except PermissionError:
print('ディレクトリ作成の権限がありません')
except FileExistsError:
print('ディレクトリは既に存在します')
mkdir vs makedirsの使い分け
mkdirを使うべき場面
- 単一階層のディレクトリのみ作成する場合
- 親ディレクトリの存在が確実な場合
makedirsを使うべき場面
- 複数階層のディレクトリを一度に作成する場合
- 親ディレクトリが存在するか不明な場合
まとめ
ディレクトリ作成には、単純なos.mkdir()と階層作成可能なos.makedirs()を適切に使い分けることが重要です。現代的なPythonではpathlib.Pathを使用することで、より直感的なコードが書けます。exist_ok=Trueパラメータを活用して、エラーフリーなディレクトリ作成を心がけましょう。
■プロンプトだけでオリジナルアプリを開発・公開してみた!!
■AI時代の第一歩!「AI駆動開発コース」はじめました!
テックジム東京本校で先行開始。
■テックジム東京本校
「武田塾」のプログラミング版といえば「テックジム」。
講義動画なし、教科書なし。「進捗管理とコーチング」で効率学習。
より早く、より安く、しかも対面型のプログラミングスクールです。
<短期講習>5日で5万円の「Pythonミニキャンプ」開催中。
<月1開催>放送作家による映像ディレクター養成講座
<オンライン無料>ゼロから始めるPython爆速講座

