龙空技术网

python os.removedirs(),实例详解递归删除多级目录

东来文化杂货 22

前言:

而今大家对“python删除目录下所有文件”大约比较注重,你们都需要了解一些“python删除目录下所有文件”的相关内容。那么小编同时在网上收集了一些对于“python删除目录下所有文件””的相关资讯,希望我们能喜欢,各位老铁们一起来学习一下吧!

python os.removedirs(),实例详解递归删除多级目录

os.removedirs()方法

os.removedirs()是python标准库os的方法,可以用来递归删除多级目录(什么是递归删除,该怎么理解,可参考下方实例代码及解析),注意,要删除的必须是空目录(空文件夹)。如果要删除的目录不存在,python将抛出FileNotFoundError。

os.removedirs()语法

os.removedirs( path )

提示:参数path指定removedirs()方法所要删除的目录。

os.removedirs()返回值

无返回值,但可以删除操作系统中的目录。

python os.removedirs(),实例详解递归删除多级目录

os.removedirs()实例代码

>>> import os>>> path1 = 'Users/z/a/b'>>> os.makedirs(path1)>>> os.removedirs(path1) #1>>> os.removedirs(path1) #2Traceback (most recent call last):  File "<stdin>", line 1, in <module>  File "/opt/anaconda3/lib/python3.7/os.py", line 239, in removedirs    rmdir(name)FileNotFoundError: [Errno 2] No such file or directory: 'Users/z/a/b'>>> os.removedirs('/Users/z/a')Traceback (most recent call last):  File "<stdin>l", line 1, in <module>  File "/opt/anaconda3/lib/python3.7/os.py", line 239, in removedirs    rmdir(name)FileNotFoundError: [Errno 2] No such file or directory: '/Users/z/a'>>> path2 = '/Users/z/a/c'>>> os.makedirs(path1)>>> os.makedirs(path2)>>> os.removedirs(path1)>>> os.removedirs(path2)
python全栈编程

笨鸟工具-璞玉天成,大器晚成

实例代码解析:

注意:上面代码运行输出环境为Mac osx系统。

通过makedirs()创建一个path1的目录,然后通过removedirs() #1进行删除,当第二次调用removedirs() #2删除path1目录时,python抛出FileNotFoundError,因为在第一次调用中删除了该目录,目录已经不存在。而且即便是要删除该目录的父目录'/Users/z/a',python也会抛出FileNotFoundError,因为递归删除了该目录,当删除b文件夹时,a文件夹也变成空的,因此也会被递归删除;

之后又通过两次makedirs建立了不同的两个目录path1和path2,即在文件夹a之内又创建了一个c文件夹,也就是此时文件夹a之内有两个文件夹,所以当调用removedirs(path1)时,删除了文件夹b却不会像之前那样递归删除文件夹a,就是因为此时文件夹a中还有一个文件夹c,并不为空。

原文地址:

python os.removedirs()方法,递归删除多级目录 - Python库

标签: #python删除目录下所有文件 #python removedirs