Python os.removedirs() 方法递归删除目录。当我们想要删除整个目录树时,会用到它。
os.removedirs() 的工作方式与 os.rmdir() 类似。但是,唯一的区别是,如果 os.removedirs() 方法成功删除叶目录,它会尝试连续删除 path 中显示的每个父目录。该过程将继续,直到遇到非空目录。
语法
Python os.removedirs() 方法的语法如下 -
os.removedirs(path)
参数
Python os.removedirs() 方法接受单个参数 -
- path − 这是需要删除的目录的路径。
返回值
Python os.removedirs() 方法不返回任何值。
例下面的示例显示了 removedirs() 方法的基本用法。在这里,我们尝试删除 “Qikepudir” 目录。
import os, sys # listing directories print ("The dir is: %s" %os.listdir(os.getcwd())) # removing os.removedirs("/home/tp/Python/
Qikepudir") # listing directories after removing path print ("The dir after removal of path : %s" %os.listdir(os.getcwd()))
当我们运行上述程序时,它会产生以下结果——
The dir is:
[ 'a1.txt','resume.doc','a3.py','Qikepudir','amrood.admin' ]
The dir after removal is:
[ 'a1.txt','resume.doc','a3.py','amrood.admin' ]
[ 'a1.txt','resume.doc','a3.py','Qikepudir','amrood.admin' ]
The dir after removal is:
[ 'a1.txt','resume.doc','a3.py','amrood.admin' ]
例
如果指定的路径不是目录,则 removedirs() 方法会引发 “NotADirectoryError”,如果给定的目录不为空或不存在,则会引发 OSError。
import os
# Path to the directory you want to remove
path = "/home/tp/Python/newdir"
try:
# removing the directory
os.removedirs(path)
except OSError as exp:
print(f"Error: {exp.strerror}")
当我们运行上述程序时,它会产生以下结果——
Error: No such file or directory