Delete an entire directory tree using Python | shutil.rmtree() method - GeeksforGeeks

05 Jul, 2021
Shutil module in Python provides many functions of high-level operations on files and collections of files. It comes under Python’s standard utility modules. This module helps in automating the process of copying and removal of files and directories. shutil.rmtree() is used to delete an entire directory tree, path must point to a directory (but not a symbolic link to a directory). 
Syntax: shutil.rmtree(path, ignore_errors=False, onerror=None)Parameters: path: A path-like object representing a file path. A path-like object is either a string or bytes object representing a path. ignore_errors: If ignore_errors is true, errors resulting from failed removals will be ignored. oneerror: If ignore_errors is false or omitted, such errors are handled by calling a handler specified by onerror.  
Example 1: Suppose the directory and sub-directories are as follow.# Parent directory: 
# Directory inside parent directory: 
# File inside the sub-directory: 
We want to remove the directory Authors. Below is the implementation. 
Python3
# Python program to demonstrate# shutil.rmtree()   import shutilimport os   # locationlocation = "D:/Pycharm projects/GeeksforGeeks/"   # directorydir = "Authors"   # pathpath = os.path.join(location, dir)   # removing directoryshutil.rmtree(path)
Output: 
Example 2: By passing ignore_errors = False. 
Python3
# Python program to demonstrate# shutil.rmtree()   import shutilimport os   # locationlocation = "D:/Pycharm projects/GeeksforGeeks/"   # directorydir = "Authors"   # pathpath = os.path.join(location, dir)   # removing directoryshutil.rmtree(path, ignore_errors = False)   # making ignore_errors = True will not raise # a FileNotFoundError
Output: 
Traceback (most recent call last): File “D:/Pycharm projects/gfg/gfg.py”, line 16, in shutil.rmtree(path, ignore_errors=False) File “C:\Users\Nikhil Aggarwal\AppData\Local\Programs\Python\Python38-32\lib\shutil.py”, line 730, in rmtree return _rmtree_unsafe(path, onerror) File “C:\Users\Nikhil Aggarwal\AppData\Local\Programs\Python\Python38-32\lib\shutil.py”, line 589, in _rmtree_unsafe onerror(os.scandir, path, sys.exc_info()) File “C:\Users\Nikhil Aggarwal\AppData\Local\Programs\Python\Python38-32\lib\shutil.py”, line 586, in _rmtree_unsafe with os.scandir(path) as scandir_it: FileNotFoundError: [WinError 3] The system cannot find the path specified: ‘D:/Pycharm projects/GeeksforGeeks/Authors’  
Example 3: By passing onerror. In onerror a function should be passed which must contain three parameters.  
function: function which raised the exception.  
path: path name passed which raised the exception while removal  
excinfo: exception info raised by sys.exc_info()  
Below is the implementation. 
Python3
# Python program to demonstrate# shutil.rmtree()   import shutilimport os      # exception handlerdef handler(func, path, exc_info):    print("Inside handler")    print(exc_info)      # locationlocation = "D:/Pycharm projects/GeeksforGeeks/"   # directorydir = "Authors"   # pathpath = os.path.join(location, dir)   # removing directoryshutil.rmtree(path, onerror = handler)
Output: 
Inside handler (, FileNotFoundError(2, ‘The system cannot find the path specified’), ) Inside handler (, FileNotFoundError(2, ‘The system cannot find the file specified’), )  
 
surindertarika1234
python-file-handling
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
How to Install PIP on Windows ?
Check if element exists in list in Python
How To Convert Python Dictionary To JSON?
Python Classes and Objects
How to drop one or multiple columns in Pandas Dataframe
Python | Get unique values from a list
Defaultdict in Python
Python | os.path.join() method
Create a directory in Python
Python | Pandas dataframe.groupby()