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」が存在するのでエラーが発生します。