当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python os.removedirs()用法及代码示例


Python中的OS模块提供了与操作系统进行交互的函数。操作系统属于Python的标准实用程序模块。该模块提供了使用依赖于操作系统的函数的便携式方法。

如果文件名和路径无效或无法访问,或者具有正确类型但操作系统不接受的其他参数,则os模块中的所有函数都会引发OSError。

os.removedirs()Python中的方法用于递归删除目录。如果指定路径中的叶子目录已成功删除,则os.removedirs()尝试依次删除路径中提到的每个父目录,直到引发错误。引发的错误将被忽略,因为通常会引发错误,因为要删除的目录不为空。
例如,考虑以下路径:


'/home/User/Documents/foo/bar/baz'

在以上路径中,os.removedirs()方法将尝试首先删除叶子目录,即“ baz”。如果叶目录“ baz”已成功删除,则方法将尝试删除“ /home /User /Documents /foo /bar”,然后删除“ /home /User /Documents /foo /”,然后删除“ /home /User /Documents”,直到引发错误。要删除的目录应该为空。

用法: os.removedirs(path) 

参数:
path:表示文件路径的path-like对象。 path-like对象是表示路径的字符串或字节对象。

返回类型:此方法不返回任何值。

代码1:使用os.removedirs()方法删除空的目录树
# Python program to explain os.removedirs() method  
    
# importing os module  
import os 
  
# Leaf Directory name 
directory = "baz"
  
# Parent Directory 
parent = "/home/User/Documents/foo/bar"
  
# Path 
path = os.path.join(parent, directory) 
  
# Remove the Directory 
# "baz" 
os.removedirs(path) 
print("Directory '%s' has been removed successfully" %directory) 
  
# All parent directory 
# of 'baz' will be also 
# removed if they are empty 
  
输出:
Directory 'baz' has been removed successfully
代码2:使用os.removedirs()方法时可能出现的错误
# Python program to explain os.removedirs() method  
    
# importing os module  
import os 
  
  
# If the specified path  
# is not a directory 
# then 'NotADirectoryError' 
# exception will be raised 
  
# If the specified path  
# is not an empty directory 
# then an 'OSError' 
# will be raised 
  
# If there is any 
# permission issue while 
# removing the directory 
# then the 'PermissionError' 
# exception will be raised 
  
  
# similarly if specified path 
# is invalid an 'OSError' 
# will be raised 
  
# Path 
path = '/home/User/Documents/ihritik/file.txt'
  
# Try to remove 
# the specified path 
os.removedirs(path) 
输出:
Traceback (most recent call last):
  File "removedirs.py", line 33, in 
    os.removedirs(path)
  File "/usr/lib/python3.6/os.py", line 238, in removedirs
    rmdir(name)
NotADirectoryError:[Errno 20] Not a directory:'/home/User/Documents/ihritik/file.txt'
代码3:使用os.removedirs()方法时处理错误
# Python program to explain os.removedirs() method  
    
# importing os module  
import os 
  
# Path 
path = '/home/User/Documents/ihritik/file.txt'
  
# Try to remove 
# the specified path 
  
try:
    os.removedirs(path) 
    print("Director removed successfully") 
  
# If path is not a directory 
except NotADirectoryError:
    print("Specified path is not a directory.") 
  
# If permission related errors 
except PermissionError:
    print("Permission denied.") 
  
# for other errors 
except OSError as error:
    print(error) 
    print("Directory can not be removed")
输出:
Specified path is not a directory.

参考: https://docs.python.org/3/library/os.html



相关用法


注:本文由纯净天空筛选整理自ihritik大神的英文原创作品 Python | os.removedirs() method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。