Python os.makedirs() 方法



Python 的 os.makedirs() 方法是一個遞迴目錄建立函式。它的工作原理類似於 mkdir(),但會建立包含葉子目錄所需的所有中間級目錄。

在 Python 3.2 版本釋出時,引入了一個名為 exist_ok 的新引數。此引數的預設值為“False”。如果目標目錄已存在,它將引發 FileExistsError 錯誤。

語法

以下是 Python os.makedirs() 方法的語法:

os.makedirs(path, mode=0o777, exist_ok=False)

引數

Python os.makedirs() 方法接受以下引數:

  • path − 此引數指定需要遞迴建立的路徑。

  • mode − 這是一個可選引數,表示給定目錄的模式。

  • exist_ok − 這是一個可選引數,由布林值表示。如果指定目錄已存在且值為 False,則出現時會丟擲 FileExists 錯誤。

返回值

Python os.makedirs() 方法不返回值。

示例

以下示例演示了 makedirs() 方法的使用。在這裡,我們使用模式“0o777”建立多個巢狀目錄。這意味著建立的目錄對每種使用者型別都可讀、可寫和可執行。

import os, sys

# Path to be created
path = "/home/tp/Python/tmp/new/monthly/daily"

os.makedirs( path, 0o755 );
print ("Path is created")

當我們執行上述程式時,它將建立多個相互巢狀的目錄,並列印以下結果:

Path is created

示例

如果指定的目錄已存在,makedirs() 方法將引發“FileExists”錯誤。以下示例說明了這一點。

import os, sys

# Path to be created
path = "/home/tp/Python/tmp/new/monthly/daily"

try:
   os.makedirs(path)
   print ("Path created successfully")
except FileExistsError as err:
   print(f"Error: {err}")
except OSError as err:
   print(f"Error: {err}")

當我們執行上述程式時,它會產生以下結果:

Error: [Errno 17] File exists: '/home/tp/Python/tmp/new/monthly/daily'
python_files_io.htm
廣告