- 1、创建一级目录
- os.path.split()函数
- 2、删除目录
- 3、应用
在 Python中, os模块提供了两个创建目录的函数,一个用于创建一级目录,另一个用于创建多级目录。 1、创建一级目录
创建一级目录是指一次只能创建一级目录。在Python中,可以使用os模块提供的mkdir()函数实现。通过该函数只能创建指定路径中的最后一级目录,如果该目录的上一级不存在,则抛出FileNotFoundError异常。mkdir()函数的基本语法格式如下:
os.mkdir(path, mode=0o777)
参数说明:
- path:用于指定要创建的目录,可以使用绝对路径,也可以使用相对路径。
- mode:用于指定数值模式,默认值为0777。该参数在非UNIX系统上无效或被忽略。
例如,在Windows系统上创建一个C:demo目录,可以使用下面的代码:
import os
os.mkdir("C:\demo") # 创建C:demo目录
执行下面的代码后,将在C盘根目录下创建一个demo目录,如下图所示。
如果在创建路径时已经存在将抛出FileExistsError异常,例如,将上面的示例代码再执行一次,将抛出如图2所示的异常。
要解决上面的问题,可以在创建目录前,先判断指定的目录是否存在,只有当目录不存在时才创建。具体代码如下:
import os
path = "C:\demo" # 指定要创建的目录
if not os.path.exists(path): # 判断目录是否存在
os.mkdir(path) # 创建目录
print("目录创建成功!")
else:
print("该目录已经存在!")
执行上面的代码,将显示“该目录已经存在!”。
注意:如果指定的目录有多级,而且最后一级的上级目录中有不存在的,则抛出FileNotFoundError异常,并且目录创建不成功。要解决该问题有两种方法,一种是使用创建多级目录的方法(将在后面进行介绍)。另一种是编写递归函数调用os.mkdir()函数实现,具体代码如下:
语法:os.path.split('PATH')
参数说明:
- PATH指一个文件的全路径作为参数
- 如果给出的是一个目录和文件名,则输出路径和文件名
- 如果给出的是一个目录名,则输出路径和为空文件名
实际上,该函数的分割并不智能,它仅仅是以 “PATH” 中最后一个 ‘/’ 作为分隔符,分隔后,将索引为0的视为目录(路径),将索引为1的视为文件名,如:
删除目录可以通过使用os模块提供的rmdir()函数实现。通过rmdir()函数删除目录时,只有当要删除的目录为空时才起作用。rmdir()函数的基本语法格式如下:
os.rmdir(path)
其中,path为要删除的目录,可以使用相对路径,也可以使用绝对路径。
例如,要删除刚刚创建的“C:demotestdirlzy”目录,可以使用下面的代码:
import os
os.rmdir("C:\demo\test\dir\lzy") # 删除C:demotestdirmr目录
执行上面的代码后,将删除“C:demotestdir”目录下的lzy目录。
注意:如果要删除的目录不存在,那么将抛出“FileNotFoundError: [WinError 2] 系统找不到指定的文件”异常。因此,在执行os.rmdir()函数前,建议先判断该路径是否存在,可以使用os.path.exists()函数判断。具体代码如下:
import os
path = "C:\demo\test\dir\lzy" # 指定要创建的目录
if os.path.exists(path): # 判断目录是否存在
os.rmdir("C:\demo\test\dir\lzy") # 删除目录
print("目录删除成功!")
else:
print("该目录不存在!")
使用rmdir()函数只能删除空的目录,如果想要删除非空目录,则需要使用Python内置的标准模块shutil的rmtree()函数实现。例如,要删除不为空的“C:\demo\test”目录,可以使用下面的代码:
import shutil
shutil.rmtree("C:\demo\test") # 删除C:demo目录下的test子目录及其内容
3、应用
在e:下如果lzy文件夹存在,则删除。如果不存在,则新建。
import os
path = "e:\lzy"
if os.path.exists(path): #该目录存在
#删除
os.rmdir(path)
else:
os.mkdir(path) #创建



