Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでmkdir -pと同じようにディレクトリを再帰的に作成する方法

mkdir -pとは?

UnixやLinuxのコマンドであるmkdir -pは、親ディレクトリが存在しない場合でも、必要な階層のディレクトリをまとめて一括作成できる便利なオプションです。また、指定したディレクトリがすでに存在していてもエラーにならず、そのまま処理が続行されます。

Pythonでmkdir -pと同等の処理を行うには

Pythonで同じことを実現するには、標準ライブラリのosモジュールにあるos.makedirs()関数を使用します。この関数に作成したいパスを渡すことで、中間の親ディレクトリも含めて再帰的にディレクトリを作成できます。

exists_ok=True を指定する

デフォルトでは、作成しようとしたディレクトリがすでに存在しているとFileExistsErrorが発生します。これを防ぐには、引数exists_ok=Trueを指定します。こうすることで、既存のフォルダがあってもエラーにならず、mkdir -pとまったく同じ挙動になります。

>>> import os
>>> os.makedirs('my_folder/another/folder', exists_ok=True)

動作のポイント

  • 再帰的な作成: my_folder/another/folder のように、存在しない親ディレクトリも含めてすべて自動的に作成されます。
  • 既存ディレクトリへの対応: exists_ok=True を付けることで、フォルダが既に存在していてもエラーを無視して処理を続けられます。

なお、Python 3.4以降では、より直感的なAPIを持つpathlib.Path.mkdir(parents=True, exist_ok=True)を使う方法もあります。用途に応じて使い分けるとよいでしょう。

  1. Pythonでディレクトリが存在しない場合にディレクトリを作成する方法

    os.path.exists()で存在確認をしてから作成する基本の方法 ディレクトリを作成する際は、まず os.path.exists() を使って対象のディレクトリがすでに存在するかどうかを確認します。存在しない場合のみ作成することで、エラーを回避できます。 import os if not os.path.exists(my_folder): os.makedirs(my_folder) この方法は直感的で分かりやすい反面、確認と作成の間に他のプロセスがディレクトリを作成してしまうと、まれに競合状態(レースコンディション)が発生する可能性があります。 EAFPスタイル:try-e

  2. Pythonでディレクトリを作成する方法をわかりやすく解説

    Pythonでディレクトリを作成する基本方法 Pythonでディレクトリ(フォルダ)を作成するには、まず os.path.exists() を使って、そのディレクトリがすでに存在するかどうかを確認します。存在しない場合のみ作成することで、エラーの発生を防ぐことができます。 import os if not os.path.exists(my_folder): os.makedirs(my_folder) os.makedirs() は、指定したパスの中間ディレクトリも必要に応じて自動的に作成してくれる便利な関数です。 EAFPスタイルでの書き方 Pythonでは「EAFP(Easi