Python安全创建多级目录的代码
在此示例中,您将学习使用 Python 安全地创建嵌套目录。
根据您使用的 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)
- Path从pathlib库中导入类。
- mkdir()使用两个参数 parents 和调用模块exist_ok。
- 默认情况下,parents设置为False。在这种情况下,如果父目录不存在,则FileNotFoundError抛出。例如,如果要创建一个嵌套目录/folder1/folder2/folder3,并且folder1(parent) 不存在,则FileNotFoundError默认情况下会引发。因此,我们将其设置为True.
- exist_okFalse默认情况下。如果目录已经存在,FileExistsError则引发。设置它以True防止此错误。
注意:您应该提供目录的完整路径(绝对路径)(而不是相对路径)。如果目录已经存在,上面的代码不会引发异常。
示例 2:使用 os.makedirs
对于 python 3.2 及更高版本,您可以使用os.makedirs.
import os os.makedirs("/root/dirA/dirB")
- 使用makedirs()moduleos中的方法,可以以简单的方式创建嵌套目录。
- 传递的参数是我们要创建的嵌套目录。
您应该提供目录的完整路径(绝对路径)(而不是相对路径)。如果目录已经存在,上面的代码不会引发异常。
示例 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 块捕获并运行块内的语句。
相关文章