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爆速講座