※このページではアフィリエイト広告を利用しています

【Python入門】os.mkdir()でディレクトリを作成する方法とその応用

Python

ここではPythonにおける「os.mkdir()」を用いて任意のフォルダを作成する方法について解説しています。

この記事の対象

  • os.mkdir()の基本的な使用方法を知りたい方
  • 応用例(エラーハンドリング、複数ディレクトリ作成など)
  • よくあるエラーとその対処法
スポンサーリンク
スポンサーリンク

os.mkdir()の型

os.mkdir(path)

「os.mkdir()」は標準ライブラリにある関数になります。引数にパス情報を入れることで使用できます。

os.mkdir()を用いた使用例

新規フォルダ作成方法(カレントディレクトリに作成)

import os

new_folder= 'try'
os.mkdir(new_folder)

上記がプログラムになります。

作成するフォルダは実行ファイルと同じ場所(カレントディレクトリ)になります。

結果

結果として上記の様に任意のパスでフォルダを作成しました。

ディレクトリが既に存在していた場合

「os.mkdir()」 は、指定したディレクトリがすでに存在している場合、例外 FileExistsError を発生させます。

import os

folder_name = "new_folder"

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

このように、「os.path.exists()」を使ってフォルダが存在するか確認してから 「os.mkdir()」を呼び出すことで、エラーを防ぐことができます。

サブディレクトリを作る

「os.mkdir() 」は、中間ディレクトリが存在していないと失敗します。

os.mkdir("parent/child")  # エラーになる

解決方法:os.makedirs() を使う

似た表現として「os.makedirs()」があります。パスの成約が「mkdir」のように予め指定する必要がないのが特徴です。

os.makedirs("parent/child")

すべての親ディレクトリも含めて作成したい場合は os.makedirs() を使用します。

複数のディレクトリを一括で作成する

import os
#1---親folder作成
p_folder = 'test_folder'
os.mkdir(p_folder)
#2---子folder作成
def name(folder_name):
        c1_folder = folder_name
        os.mkdir(p_folder+ '/' + c1_folder)
#3---関数呼び出し
name('test1-1')
name('test1-2')

上記は親フォルダの中に子フォルダを作成するプログラムです。

それでは解説していきます。

#1---親folder作成
p_folder = 'test_folder'
os.mkdir(p_folder)

1の部分では親フォルダを作成しています。

#2---子folder作成
def name(folder_name):
        c1_folder = folder_name
        os.mkdir(p_folder+ '/' + c1_folder)

2の部分では関数の処理となります。引数として作成したいフォルダ名を指定しています。次に1で作成した親フォルダと合わせて指定したパスに子フォルダを作成しています。

#3---関数呼び出し
name('test1-1')
name('test1-2')

3の部分は関数の呼び出しになっています。子フォルダを任意の数だけ増やすことができるように関数化してあります。

結果

親フォルダを作成してその中に子フォルダが作成されていることが確認できました。ファイル作成も同時にしたい場合が多いと思います。ファイルを作成する方法は以下で紹介しています。

よくあるエラーと対処法

エラー内容解決策
FileExistsErrorフォルダがすでに存在os.path.exists() で事前確認
PermissionError作成先に権限がない管理者権限 or 適切なディレクトリを使用
FileNotFoundError中間フォルダが存在しないos.makedirs() を使う
OSError: [Errno 36]パスが長すぎるパス名を短くする or OSの制限を確認

Pythonスクリプトから自動的にプロジェクト構造を作成する例(応用)

import os

folders = [
    "project",
    "project/data",
    "project/output",
    "project/logs"
]

for folder in folders:
    if not os.path.exists(folder):
        os.makedirs(folder)
        print(f"{folder} を作成しました")

このようにすれば、プロジェクトのテンプレートを自動で作ることも可能です。

まとめ

項目概要
os.mkdir(path)単一のディレクトリを作成
os.makedirs(path)中間フォルダも含めて作成
os.path.exists(path)存在確認に使う
FileExistsError同名のフォルダが既にある場合に発生
PermissionError権限不足で発生するエラー

Pythonの os.mkdir() 関数は、スクリプトからフォルダを動的に作成するための非常に強力なツールです。ログ保存や出力データ管理など、自動化やスクリプト開発において多くの場面で役立ちます。

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