Python: ディレクトリを作成する mkdir(), 再帰的 makedirs()

Pythonでディレクトリを作成する場合は osモジュールの mkdir()関数、 再帰的に(複数階層の)ディレクトリを作成する場合は makedirs()関数を使います。

書式

書式
mkdir(パス)

makedirs(パス)

どちらの関数も戻り値はありません。
すでに存在するディレクトリを指定した場合は、 「FileExistsError」が発生します。 ですからディレクトリを作成する前に、 os.path.isdir()関数やos.path.exists()関数を使って すでに存在するかどうかを確認する事をおすすめします。

mkdir() でディレクトリを作成

まずはmkdir()でディレクトリを作成します。

import os

os.mkdir("sample") # 成功

# すでにディレクトリが存在する場合は
os.mkdir("sample") # 「FileExistsError」が発生

最初の「os.mkdir("sample")」では「sample」ディレクトリが作成されますが、 次の「os.mkdir("sample")」はすでに「sample」ディレクトリが存在するので エラーが発生します。
エラーを回避するためにはos.path.isdir()やos.path.exists()を使って事前にチェックします。

次のサンプルコードでは、 if文、not、os.path.isdir()を使ってディレクトリが存在しない場合のみ 作成します。

import os

dir_path = "sample"

# 存在しない場合のみディレクトリを作成
if not os.path.isdir(dir_path):
	os.mkdir(dir_path)

makedirs()で再帰的にディレクトリを作成

次はmakedirs()で再帰的に(複数階層の)ディレクトリを作成してみます。

import os

os.makedirs("sample2/sample3")  # 成功

os.makedirs("sample2/sample4")  # 成功

# すでにディレクトリが存在する場合は
os.makedirs("sample2/sample4")  # 「FileExistsError」が発生

最初の「os.makedirs("sample2/sample3")」で ディレクトリ「sample2」とその下に「sample3」が作成されます。

次の「os.makedirs("sample2/sample4")」で、 「sample2」の下に「sample4」が作成されました。 この場合、「sample2」はすでに存在しますがエラーにはなりません。

3番目の「os.makedirs("sample2/sample4")」は「sample2」の下に すでに「sample4」が存在するのでエラーが発生します。

Python