Python os.removedirs() 方法



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' ]

如果指定的路径不是目录,则 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