當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。