Pythonでディレクトリを作成する際、そのディレクトリが既に存在するかどうかを確認することは一般的なタスクです。以下に、Pythonでディレクトリが存在しない場合にのみディレクトリを作成する方法を示します。
import os
def create_directory(directory):
if not os.path.exists(directory):
os.makedirs(directory)
この関数は、指定したディレクトリが存在しない場合にのみディレクトリを作成します。os.path.exists(directory)
は、指定したディレクトリが存在する場合にTrue
を返し、存在しない場合にFalse
を返します。したがって、if not os.path.exists(directory):
は、ディレクトリが存在しない場合にTrue
を返します。
しかし、このコードには問題があります。ディレクトリが存在するかどうかを確認した後で、ディレクトリを作成するまでの間に他のプロセスが同じディレクトリを作成すると、os.makedirs(directory)
はエラーをスローします。これを回避するためには、Python 3.2以降で利用可能なexist_ok=True
引数を使用します。
import os
def create_directory(directory):
os.makedirs(directory, exist_ok=True)
このコードは、ディレクトリが存在しない場合にのみディレクトリを作成します。ディレクトリが既に存在する場合、何も行わずエラーもスローしません。これにより、レースコンディションを回避できます。
以上がPythonで存在しないディレクトリを作成する方法です。この情報がPythonでのディレクトリ操作に役立つことを願っています。