您的位置:

文件夹递归创建——Python os mkdir recursive函数

Python 是一种高效的脚本语言,适合用来处理各种自动化任务。其中包括创建和管理文件和文件夹。 在 Python 中,如果需要创建一个文件夹,并且要求将其子文件夹中的目录一并创建,可以使用 Python 内置的 os 模块中的 mkdir 函数。本文将围绕如何使用 Python os 模块中的 mkdir 函数在文件夹中递归创建子文件夹展开讲解。

一、Python os 模块中的 mkdir 函数

Python 中有一个内置的操作系统模块 os 模块,可以用于访问操作系统文件系统。在 os 模块中有一个 mkdir 函数,用于创建目录。

mkdir 函数的使用方法如下:


os.mkdir(path[, mode])

其中,path 为要创建的目录路径,mode 为目录权限。如果省略 mode 参数,Python 会使用默认值 0777 创建目录。

二、递归创建文件夹

如果要创建一个目录,但它所在的父目录不存在,就会报错。要递归创建多层目录, 可以使用 os 模块中的 makedirs 函数,这个函数可以在创建子目录的同时,自动创建它所在的上层目录。

makedirs 函数的使用方法如下:


os.makedirs(name[, mode])

其中,name 参数为要创建的目录路径,mode 为目录权限。如果省略 mode 参数,Python 会使用默认值 0777 创建目录。

下面是一个递归创建多级目录的示例:


import os

path = "test/subtest/subsubtest"
# 第一种方法,使用os.makedirs函数
os.makedirs(path)

# 第二种方法,先创建父目录,在创建子目录
os.makedirs(os.path.dirname(path), exist_ok=True)
os.makedirs(path, exist_ok=True)

该示例代码中,os.path.dirname 函数返回目录路径中的父目录,如果父目录不存在,则创建它。

三、使用递归函数创建文件夹

递归函数是一种常见的编程方法,它通常在遇到某个条件时,调用自身来解决问题。 使用递归函数可以创建嵌套的目录树,下面是一个递归创建多级目录的示例:


import os

# 递归创建目录
def make_dirs(path):
    if not os.path.exists(path):
        # os.path.dirname 返回目录路径中的父目录
        make_dirs(os.path.dirname(path))
        os.mkdir(path)

path = "test/subtest/subsubtest"
make_dirs(path)

该示例代码中,make_dirs 函数通过检查路径是否存在来判断目录是否需要创建,如果不存在,则使用 os.path.dirname 函数递归创建父目录,最后再使用 os.mkdir 创建当前目录。

四、其他方法

在 Python 中,还有其他方式可以创建文件夹。例如,使用 pathlib 模块的 Path 类可以方便地创建目录。

下面是一个使用 pathlib.Path 创建多级目录的示例:


from pathlib import Path

path = Path("test/subtest/subsubtest")
path.mkdir(parents=True, exist_ok=True)

使用 pathlib.Path 能够更方便地创建、操作和管理目录,值得一试。

五、总结

本文围绕如何使用 Python os 模块中的 mkdir 函数在文件夹中递归创建子文件夹展开讲解,介绍了 Python 中创建文件夹的多种方法,包括使用 os 模块中的 mkdir、makedirs 函数递归创建目录、使用递归函数创建目录,以及使用 pathlib.Path 类创建目录。

这些方法可以很好地帮助 Python 开发人员完成各种自动化任务的文件夹创建和管理操作,提高开发效率。