パイソン | os.makedirs() メソッド
OS モジュール内のすべての関数が上昇します OSエラー ファイル名とパスが無効またはアクセスできない場合、またはその他の引数が正しい型であるにもかかわらずオペレーティング システムで受け入れられない場合。この記事では、os モジュールを使用してディレクトリを再帰的に作成する方法と、os.makedirs() メソッドについて説明します。
Python os.makedirs() 関数の構文
構文: os.makedirs(パス、モード = 0o777、exist_ok = False)
パラメータ:
- パス : ファイル システム パスを表すパスのようなオブジェクト。パスのようなオブジェクトは、パスを表す文字列またはバイト オブジェクトです。
- モード (オプション) : 新しく作成されたディレクトリのモードを表す整数値。このパラメータを省略した場合は、デフォルト値 Oo777 が使用されます。
- 存在します_ok (オプション) : このパラメータにはデフォルト値 False が使用されます。ターゲット ディレクトリがすでに存在する場合、その値が False の場合は OSError が発生し、それ以外の場合は OSError が発生します。値が True の場合、ディレクトリは変更されません。
戻り値の型: このメソッドは値を返しません。
Python の os.makedirs() メソッド
os.makedirs() のメソッド パイソン ディレクトリを再帰的に作成するために使用されます。つまり、リーフ ディレクトリの作成中に中間レベルのディレクトリが欠落している場合、 os.makedirs() メソッドはそれらをすべて作成します。
たとえば、次のパスを考えてみましょう。
/home/User/Documents/GeeksForGeeks/Authors/ihritik
ディレクトリ「ihritik」を作成したいが、ディレクトリ「GeeksForGeeks」と「Authors」がパス内で使用できないとします。それから os.makedirs() このメソッドは、指定されたパスに使用できないディレクトリまたは欠落しているディレクトリをすべて作成します。最初に「GeeksForGeeks」と「Authors」が作成され、次に「ihritik」ディレクトリが作成されます。
Python os.makedirs() 関数の例
以下に os.makedirs() 関数の例をいくつか示します。これにより、 OSモジュール :
を使用してディレクトリを作成する os.makedirs()>
この例では、 os.makedirs()> メソッドは、ネストされたディレクトリを作成するために使用されます。最初のセクションでは、Authors ディレクトリ パス内に ihritik という名前のディレクトリを作成します。 2 番目のセクションでは、指定されたアクセス許可を使用して、techcodeview.com/a/b 内にネストされたディレクトリ c を作成します。
Python3
import> os> # Leaf directory> directory> => 'ihritik'> # Parent Directories> parent_dir> => '/home/User/Documents/GeeksForGeeks/Authors'> # Path> path> => os.path.join(parent_dir, directory)> # Create the directory 'ihritik'> os.makedirs(path)> print> (> 'Directory '%s' created'> %> directory)> # Leaf directory> directory> => 'c'> # Parent Directories> parent_dir> => '/home/User/Documents/techcodeview.com/a/b'> # mode> mode> => 0o666> path> => os.path.join(parent_dir, directory)> os.makedirs(path, mode)> print> (> 'Directory '%s' created'> %> directory)> |
出力:
Directory 'ihritik' created Directory 'c' created
os.makedirs() メソッド使用時のエラー
この例では、 os.makedirs()> メソッドは、GeeksForGeeks パス内に ihritik という名前のディレクトリを作成しようとします。ディレクトリがすでに存在する場合、メソッドは OSError> 。作成が成功すると、確認メッセージが出力されます。
Python3
import> os> # Directory> directory> => 'ihritik'> # Parent Directory path> parent_dir> => '/home/User/Documents/GeeksForGeeks'> # Path> path> => os.path.join(parent_dir, directory)> # Create the directory 'ihritik'> os.makedirs(path)> print> (> 'Directory '%s' created'> %> directory)> |
出力:
Traceback (most recent call last): File 'makedirs.py', line 21, in os.makedirs(path) File '/usr/lib/python3.6/os.py', line 220, in makedirs mkdir(name, mode) FileExistsError: [Errno 17] File exists: '/home/User/Documents/GeeksForGeeks/ihritik'
os.makedirs() メソッド使用時のエラーの処理
この例では、 os.makedirs()> メソッドは exist_ok> パラメータを次のように設定 True> 抑制する OSError> ディレクトリがすでに存在する場合。ディレクトリが存在しない場合は作成されます。ただし、その他の OSError> 無効なパス名などの例外が発生する可能性があるため、個別に処理する必要があります。
Python3
import> os> # Directory> directory> => 'ihritik'> # Parent Directory path> parent_dir> => '/home/ihritik/Desktop/GeeksForGeeks'> # Path> path> => os.path.join(parent_dir, directory)> # Create the directory 'ihritik'> try> :> > os.makedirs(path, exist_ok> => True> )> > print> (> 'Directory '%s' created successfully'> %> directory)> except> OSError as error:> > print> (> 'Directory '%s' can not be created'> )> |
出力:
Directory 'ihritik' created successfully