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'