全般

[Python] ディレクトリ(フォルダ)を作成する方法

今回は、Pythonでディレクトリ(フォルダ)を作成する方法についてご紹介します。

Pythonでディレクトリを作成するメリットと概要

Pythonには標準ライブラリでディレクトリ作成を行う複数の方法があります。

代表的な方法として、os.mkdir()os.makedirs()pathlibモジュールのPath.mkdir()があります。

用途やディレクトリ階層の深さによって使い分けることで、作業効率を高めることができます。

os.mkdir()を使ったディレクトリ作成

os.mkdir()は、指定したパスに単一のディレクトリを作成します。

親ディレクトリが存在しない場合はエラーになる点に注意が必要です。

以下の例では、dir_nameというフォルダが存在しない場合に作成します。

上記コードを実行すると、次のような結果が得られます。

実行結果

ディレクトリ ‘sample_dir’ を作成しました。

os.makedirs()で再帰的なディレクトリ作成

os.makedirs()は、中間ディレクトリを含めて一度に作成することが可能です。

また、exist_ok=Trueを指定することで、既にディレクトリが存在していてもエラーになりません。

下記の例では、ネストしたディレクトリを再帰的に作成しています。

実行結果は以下の通りです。

実行結果

ディレクトリ ‘parent_dir/child_dir/grandchild_dir’ を作成しました。(既に存在していれば何もしません)

pathlibモジュールを使ったディレクトリ作成

Python 3.4以降で利用できるpathlibモジュールを使うと、パスをオブジェクト指向で扱えるようになります。

Path.mkdir()メソッドにparents=Trueexist_ok=Trueを指定すると、階層構造を一度に作成し、既に存在する場合でもエラーを抑止できます。

コードは以下の通りです。

実行結果は次のようになります。

実行結果

ディレクトリ ‘example_dir/subdir’ を作成しました。

よくあるエラーと対策

ディレクトリを作成する際には、いくつかのエラーが発生する可能性があります。

  • FileExistsError:作成しようとしたディレクトリが既に存在する場合に起こるエラーです。os.makedirs()Path.mkdir()exist_ok=Trueを指定すると回避できます。
  • PermissionError:作成先のディレクトリに対して権限がない場合に起こります。実行ユーザの権限を確認するか、os.chmod()などで適切に権限を設定する必要があります。
  • FileNotFoundErroros.mkdir()で、親ディレクトリが存在しない状態でネストされたディレクトリを作成しようとすると発生します。再帰的に作成する必要がある場合はos.makedirs()Path.mkdir(parents=True)を使用します。

これらのエラーを想定して、try-except構文を用いたエラーハンドリングを行うことで、プログラムが予期せず停止するのを防ぐことも可能です。

まとめ

Pythonでディレクトリを作成する方法は、用途によって最適な選択肢が異なります。

単一階層ならos.mkdir()、複数階層ならos.makedirs()pathlibが便利です。

エラー対策も含めて、目的や環境に応じた方法を選ぶとスムーズに作業できます。