Python安全创建多级目录的代码

2022-05-03 00:00:00 创建 代码 目录

在此示例中,您将学习使用 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 块捕获并运行块内的语句。

相关文章