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