Open In App

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

Last Updated : 05 Jul, 2021
Improve
Improve
Like Article
Like
Save
Share
Report

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:
 

python shutil.rmtree()

# Directory inside parent directory:
 

python shutil.rmtree()

# File inside the sub-directory:
 

python shutil.rmtree()

We want to remove the directory Authors. Below is the implementation.
 

Python3




# Python program to demonstrate
# shutil.rmtree()
   
import shutil
import os
   
# location
location = "D:/Pycharm projects/GeeksforGeeks/"
   
# directory
dir = "Authors"
   
# path
path = os.path.join(location, dir)
   
# removing directory
shutil.rmtree(path)


Output:
 

python shutil.rmtree()

Example 2: By passing ignore_errors = False.
 

Python3




# Python program to demonstrate
# shutil.rmtree()
   
import shutil
import os
   
# location
location = "D:/Pycharm projects/GeeksforGeeks/"
   
# directory
dir = "Authors"
   
# path
path = os.path.join(location, dir)
   
# removing directory
shutil.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 shutil
import os
   
   
# exception handler
def handler(func, path, exc_info):
    print("Inside handler")
    print(exc_info)
   
   
# location
location = "D:/Pycharm projects/GeeksforGeeks/"
   
# directory
dir = "Authors"
   
# path
path = os.path.join(location, dir)
   
# removing directory
shutil.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’), ) 
 

 



Similar Reads

Python | shutil.get_archive_formats() method
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 process of copying and removal of files and directories. shutil.get_archive_formats() method in Python is used to get the list of supported formats for archivin
1 min read
Python | shutil.copy() method
C/C++ Code # Python program to explain shutil.copy() method # importing shutil module import shutil # Source path source = "/home/User/Documents/file.txt" # Destination path destination = "/home/User/Documents/file.txt" # Copy the content of # source to destination try: shutil.copy(source, destination) print("File copied su
5 min read
Python | shutil.copy2() method
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 process of copying and removal of files and directories.shutil.copy2() method in Python is used to copy the content of source file to destination file or direct
4 min read
Python | shutil.get_unpack_formats() method
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 process of copying and removal of files and directories. shutil.get_unpack_formats() method in Python is used to get the list of all supported formats available
2 min read
Python | shutil.disk_usage() method
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 process of copying and removal of files and directories. shutil.disk_usage() method in Python is to get disk usage statistics about the given path. This method
2 min read
Python | shutil.unregister_unpack_format() method
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 process of copying and removal of files and directories. shutil.unregister_unpack_format() method in Python is used to unregister or remove an unpack format fro
2 min read
Python | shutil.unregister_archive_format() method
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.unregister_archive_format() method in Python is used to unregister or remove an archive form
2 min read
Python | shutil.copystat() method
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 process of copying and removal of files and directories.shutil.copystat() method in Python is used to copy the permission bits, last access time, last modificat
3 min read
Python | shutil.copymode() method
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.copymode() method in Python is used to copy the permission bits from the given source path to
2 min read
Python | shutil.move() method
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.move() method Recursively moves a file or directory (source) to another location (destinatio
2 min read
Article Tags :
Practice Tags :