自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501
在Python中,os模块提供了两个创建目录的函数,一个用于创建一级目录,另一个用于创建多级目录。
(1)创建一级目录
创建一级目录是指一次只能创建一级目录。在Python中,可以使用os模块提供的mkdir()函数实现。通过该函数只能创建指定路径中的最后一级目录,如果该目录的上一级不存在,则抛出FileNotFoundError异常。mkdir()函数的基本语法格式如下:
os.mkdir(path, mode=0o777)
参数说明:
l path:用于指定要创建的目录,可以使用绝对路径,也可以使用相对路径。
l mode:用于指定数值模式,默认值为0777。该参数在非UNIX系统上无效或被忽略。
例如,在Windows系统上创建一个C:\demo目录,可以使用下面的代码:
import os
os.mkdir("C:\\demo") # 创建C:\demo目录
执行下面的代码后,将在C盘根目录下创建一个demo目录,如图20所示。
图20 创建demo目录成功
如果在创建路径时已经存在将抛出FileExistsError异常,例如,将上面的示例代码再执行一次,将抛出如图21所示的异常。
图21 创建demo目录失败
要解决上面的问题,可以在创建目录前,先判断指定的目录是否存在,只有当目录不存在时才创建。具体代码如下:
import os
path = "C:\\demo" # 指定要创建的目录
if not os.path.exists(path): # 判断目录是否存在
os.mkdir(path) # 创建目录
print("目录创建成功!")
else:
print("该目录已经存在!")
执行上面的代码,将显示“该目录已经存在!”。
注意:如果指定的目录有多级,而且最后一级的上级目录中有不存在的,则抛出FileNotFoundError异常,并且目录创建不成功。要解决该问题有两种方法,一种是使用创建多级目录的方法(将在后面进行介绍)。另一种是编写递归函数调用os.mkdir()函数实现,具体代码如下:
import os # 导入标准模块os
def mkdir(path): # 定义递归创建目录的函数
if not os.path.isdir(path): # 判断是否为有效路径
mkdir(os.path.split(path)[0]) # 递归调用
else: # 如果目录存在,直接返回
return
os.mkdir(path) # 创建目录
mkdir(“D:/mr/test/demo”) # 调用mkdir递归函数
(2)创建多级目录
使用mkdir()函数只能创建一级目录,如果想创建多级目录,可以使用os模块提供的makedirs()函数,该函数用于采用递归的方式创建目录。makedirs()函数的基本语法格式如下:
os.makedirs(name, mode=0o777)
参数说明:
l name:用于指定要创建的目录,可以使用绝对路径,也可以使用相对路径。
l mode:用于指定数值模式,默认值为0777。该参数在非UNIX系统上无效或被忽略。
例如,在Windows系统上,刚刚创建的C:\demo目录下,再创建子目录test\dir\mr(对应的目录为:C:\demo\test\dir\mr),可以使用下面的代码。
import os
os. makedirs ("C:\\demo\\test\\dir\\mr ") # 创建C:\demo\test\dir\mr目录
执行下面的代码后,将在C:\demo目录下创建子目录test,并且在test目录下再创建子目录dir,在dir目录下再创建子目录mr。创建后的目录结构如图22所示。
图22 创建多级目录的结果