\

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でのディレクトリ操作に役立つことを願っています。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です