Last Updated : 15 Jul, 2025
In this article, we will see how to safely delete files and folders using the send2trash module in Python. Using send2trash, we can send files to the Trash or Recycle Bin instead of permanently deleting them. The OS module's unlink(), remove() and rmdir() functions can be used to delete files or folders. But, these functions delete the files permanently. The operations cannot be undone if there were any accidental deletions performed. This can be prevented using send2trash.
Modules requiredpip install send2trashDeleting a file or folder
The send2trash() function accepts the location of the file or folder to be deleted.
Python3
import send2trash
send2trash.send2trash("/location/to/file")
The process of deleting a directory is same as above. If the directory contains files or other folders, those are also deleted. A TrashPermissionError exception is raised, in case a file could not be deleted due to permission error or any other unexpected reason.
Deleting specific files in a directoryWe can use the os.walk() function to walk through a directory and delete specific files. In the example below, we will delete all '.txt' files in the given directory.
Python3
import os
import send2trash
# walking through the directory
for folder, subfolders, files in os.walk('/Users/tithighosh/Documents'):
for file in files:
# checking if file is
# of .txt type
if file.endswith('.txt'):
path = os.path.join(folder, file)
# printing the path of the file
# to be deleted
print('deleted : ', path )
# deleting the file
send2trash.send2trash(path)
Output :
deleted : /Users/tithighosh/Documents/cfile.txt deleted : /Users/tithighosh/Documents/e_also_big_output.txt deleted : /Users/tithighosh/Documents/res.txt deleted : /Users/tithighosh/Documents/tk.txt
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4