python os.makedirs()方法,什么是递归创建目录

os.makedirs()方法

python标准库os方法makedirs(),可用于递归创建目录。默认情况下,如果所要创建的目录已经存在,那么python将抛出OSError。其中的“递归”的意思是,如果makedirs()参数指定所要创建的目标目录中的某一个节点路径不存在,则makedirs()会自动创建该节点路径,这是makedirs()与mkdir()方法不同的地方之一。具体的可以看下方的实例代码。


os.makedirs()语法及参数结构

os.makedirs(path, mode=0o777, exist_ok=False)

参数解析表:

参数描述
path指定os.makedirs()方法所要创建的目录
mode指定权限模式
exist_ok默认值为False,即当目标目录已经存在,python抛出OSError。

os.makedirs()返回值

用于创建目录,无返回值。


os.makedirs()实例代码

提示:如下代码是在mac系统中运行输出的:

import os
>>> os.getcwd()
'/Users/z'  #这是当前的工作目录
>>> path = '/Users/z/makedirs'
>>> os.makedirs(path) #根据path创建目标目录,可以在对应的路径下查看文件夹是否已创建
>>> os.makedirs(path) #如果目标目录已经创建,那么再次创建,默认情况下将抛出FileExistsError
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/anaconda3/lib/python3.7/os.py", line 221, in makedirs
    mkdir(name, mode)
FileExistsError: [Errno 17] File exists: '/Users/z/makedirs'
>>> os.makedirs(path,exist_ok=True) #如果目标目录已经存在,再次创建,并制定exist_ok为True,python不抛出error
>>> path2 = '/Users/z/makedirs/a/b' #该目标目录中,目标文件夹b和节点路径a这两个文件夹都不存在
>>> os.mkdir(path2) #使用mkdir()方法创建path2目标目录,因为中间的a文件夹并不存在,python抛出FileNotFoundError
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
FileNotFoundError: [Errno 2] No such file or directory: '/Users/z/makedirs/a/b'
>>> os.makedirs(path2) #使用makedirs()创建path2目标目录,则可递归创建,而不会因为中间的a文件夹不存在而抛出error
>>> os.makedirs(path2) #再次调用makedirs()创建path2目录,python抛出FileExistsError,说明目录已创建成功
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/anaconda3/lib/python3.7/os.py", line 221, in makedirs
    mkdir(name, mode)
FileExistsError: [Errno 17] File exists: '/Users/z/makedirs/a/b'

全栈后端 / Python库 :









Copyright © 2022-2024 笨鸟工具 x1y1z1.com All Rights Reserved.