Pythonでフォルダを作成する方法を徹底解説|初心者でも安心の入門ガイド

Pythonを使ってフォルダ(ディレクトリ)を作成する方法は、プログラムからファイルを管理したいときにとても便利です。
たとえば、ログファイルの保存先を日付ごとに自動で作成したり、ユーザーごとのフォルダを動的に用意したりと、活用の幅は非常に広がります。
この記事では、Pythonを使ってフォルダを作成する基本的な方法から、存在チェックやエラー処理、複数階層の作成、応用テクニックまでを丁寧に解説します。
プログラミング初心者の方にもわかりやすいよう、実際に動かせるコード例を交えながらご紹介します。


Pythonでフォルダを作成する基本:os.mkdir()

Pythonには標準でファイルやフォルダを扱うためのモジュール「os」があります。
もっとも基本的なフォルダ作成方法は、os.mkdir()関数を使うことです。

import os

os.mkdir("test_folder")

このコードを実行すると、現在のスクリプトがある場所に「test_folder」というフォルダが作成されます。
ただし、すでに同じ名前のフォルダが存在している場合には、FileExistsErrorが発生します。


フォルダが存在しないときだけ作成する方法

エラーを避けるためには、フォルダの存在を事前にチェックするのが定番です。
os.path.exists()を使えば、フォルダやファイルの存在を確認できます。

import os

folder_name = "logs"

if not os.path.exists(folder_name):
os.mkdir(folder_name)
print(f"{folder_name} を作成しました")
else:
print(f"{folder_name} は既に存在します")

このようにしておくことで、スクリプトの実行時にエラーが発生しにくくなります。


サブフォルダなどの複数階層を作成する:os.makedirs()

os.mkdir()では1階層しか作成できません。
たとえば parent/child というように、親フォルダとその中の子フォルダを一度に作りたい場合は、os.makedirs()を使います。

import os

os.makedirs("parent_folder/child_folder", exist_ok=True)

このとき exist_ok=True としておくと、既にフォルダが存在していてもエラーが発生しません。
このオプションは Python 3.2 以降で使用可能です。


作成したフォルダにファイルを保存する例

作成したフォルダにファイルを保存するケースも多いでしょう。
たとえばログファイルなどを保存するために、以下のようなコードが書けます。

import os

log_dir = "logs"
os.makedirs(log_dir, exist_ok=True)

log_file = os.path.join(log_dir, "log.txt")

with open(log_file, "w") as f:
f.write("ログの内容を書きます")

os.path.join()を使うことで、OSに依存しないパスを生成できます。WindowsとLinuxのどちらでも安全に動作します。


日付でフォルダを自動生成する

実務では、日付ごとにフォルダを作ってファイルを整理する場面も多いです。
Pythonの datetime モジュールを組み合わせれば、日付付きのフォルダ名を簡単に生成できます。

import os
from datetime import datetime

today = datetime.now().strftime("%Y-%m-%d")
folder_name = f"backup_{today}"

os.makedirs(folder_name, exist_ok=True)

このコードを実行すると、たとえば backup_2025-05-01 のようなフォルダが作成されます。
自動バックアップやログ管理に便利です。


フォルダ作成時のエラー対策

フォルダ作成時に起こり得るエラーには、以下のようなものがあります。

  • PermissionError:書き込み権限がない場所に作ろうとした
  • FileExistsError:すでに同名のファイルやフォルダがある
  • OSError:ファイルシステムの制限など

これらをハンドリングするには try-except 文を使います。

import os

try:
os.mkdir("new_folder")
except FileExistsError:
print("フォルダはすでに存在しています")
except PermissionError:
print("この場所にはフォルダを作成できません")
except Exception as e:
print(f"予期せぬエラーが発生しました: {e}")

pathlibを使ったフォルダ作成(Python 3.5以降)

Python 3.5以降では、pathlibモジュールが推奨されています。
直感的でオブジェクト指向的な操作が可能です。

from pathlib import Path

p = Path("my_pathlib_folder")
p.mkdir(exist_ok=True)

複数階層を作りたい場合は、parents=Trueを追加します。

p = Path("parent/child/grandchild")
p.mkdir(parents=True, exist_ok=True)

pathlibは読みやすく、コードの可読性も高まるため、今後はこちらの利用をおすすめします。


実践:ユーザーごとのフォルダを自動作成するスクリプト

最後に、実用的なサンプルとして複数ユーザーのフォルダを自動作成するスクリプトをご紹介します。

import os

users = ["tanaka", "suzuki", "yamada"]
base_dir = "user_folders"

for user in users:
user_folder = os.path.join(base_dir, user)
os.makedirs(user_folder, exist_ok=True)
print(f"{user_folder} を作成しました")

このコードは、次のようなフォルダ構成を自動で生成します。

コピーする編集するuser_folders/
├── tanaka/
├── suzuki/
└── yamada/

まとめ

Pythonでのフォルダ作成はとても簡単で、少し応用すれば様々な用途に活用できます。

  • os.mkdir()で1階層のフォルダを作成
  • os.makedirs()で複数階層も対応
  • exist_oktry-exceptでエラーに強く
  • pathlibでより直感的な書き方も可能

業務自動化やスクリプト作成において、フォルダ管理は重要な要素です。
ぜひ本記事を参考に、あなたのPythonスクリプトをさらに便利に進化させてください。

タイトルとURLをコピーしました