根据您使用的 Python 版本,有不同的方法可以创建嵌套目录。在本例中,我们将创建如下图所示的目录。

示例 1:使用 pathlib.Path.mkdir
对于 Python 3.5 及以上版本,您可以使用 pathlib.Path.mkdir
来创建嵌套目录。
from pathlib import Path
Path("/root/dirA/dirB").mkdir(parents=True, exist_ok=True)
- 从
pathlib
库中导入Path
类。 - 调用模块
mkdir()
,并传入两个参数:parents 和exist_ok
。 - 默认情况下,
parents
设置为False
。在这种情况下,如果父目录不存在,则会抛出FileNotFoundError
。例如,如果您想创建一个嵌套目录/folder1/folder2/folder3
,而folder1
(父目录) 已经不存在,那么默认会引发FileNotFoundError
。因此,我们将其设置为True
。 exist_ok
默认为False
。如果目录已存在,则会引发FileExistsError
。将其设置为True
以防止此错误。
注意:您应该提供目录的完整路径(绝对路径)(而不是相对路径)。如果目录已存在,上述代码不会引发异常。
示例 2:使用 os.makedirs
对于 Python 3.2 及以上版本,您可以使用 os.makedirs
。
import os
os.makedirs("/root/dirA/dirB")
- 使用
os
模块的makedirs()
方法,可以简单地创建一个嵌套目录。 - 传递的参数是我们想要创建的嵌套目录。
您应该提供目录的完整路径(绝对路径)(而不是相对路径)。如果目录已存在,上述代码不会引发异常。
示例 3:使用 distutils.dir_util
import distutils.dir_util
distutils.dir_util.mkpath("/root/dirA/dirB")
本示例也与示例 2 类似。这里使用 mkpath()
代替 makedirs()
。
您应该提供目录的完整路径(绝对路径)(而不是相对路径)。如果目录已存在,上述代码不会引发异常。
示例 4:如果目录已存在则引发异常
import os
try:
os.makedirs("/dirA/dirB")
except FileExistsError:
print("File already exists")
本示例与示例 2 类似。
- 该语句被放在 try 块内。
- 如果目录已经存在,
FileExistsError
会被 except 块捕获,并运行块内的语句。
另请阅读