Python File Deletion Tutorial – How to Delete Files Safely Using Python
Last updated 5 months, 1 week ago | 367 views 75 5

Deleting files is a common task in automation, scripting, and file management systems. Python makes it easy to delete files and folders using the built-in os
and pathlib
modules.
In this tutorial, you’ll learn:
-
How to delete a file using Python
-
How to check if a file exists before deleting it
-
How to delete folders
-
The difference between
os
andpathlib
-
A complete working example
-
Tips and common pitfalls
Modules You Need
To delete files in Python, you typically use either:
-
os
module – the traditional way -
pathlib
module – modern and object-oriented
import os
from pathlib import Path
Delete File Using os.remove()
import os
file_path = "sample.txt"
if os.path.exists(file_path):
os.remove(file_path)
print("File deleted successfully.")
else:
print("File not found.")
✅ Good Practice:
Always check if the file exists using os.path.exists()
before attempting to delete it. This prevents errors.
Delete File Using pathlib.Path.unlink()
The pathlib
module offers a more Pythonic approach:
from pathlib import Path
file = Path("sample.txt")
if file.exists():
file.unlink()
print("File deleted successfully.")
else:
print("File not found.")
Deleting Folders (Use with Care!)
Delete Empty Folder with os.rmdir()
os.rmdir("empty_folder")
Delete Folder with Contents Using shutil.rmtree()
import shutil
shutil.rmtree("my_folder")
⚠️ Use
shutil.rmtree()
with caution — it deletes everything inside the folder.
Preventing Errors with Try-Except
Always wrap file deletion in a try-except block to handle errors gracefully.
try:
os.remove("important.txt")
print("File deleted.")
except FileNotFoundError:
print("File not found.")
except PermissionError:
print("Permission denied.")
✅ Complete Working Example
import os
def delete_file(filename):
if os.path.exists(filename):
try:
os.remove(filename)
print(f"{filename} deleted successfully.")
except PermissionError:
print(f"Permission denied to delete {filename}.")
except Exception as e:
print(f"Error: {e}")
else:
print(f"{filename} does not exist.")
# Test the function
delete_file("testfile.txt")
⚠️ Common Pitfalls
Mistake | Why it’s a Problem | Solution |
---|---|---|
Trying to delete a non-existent file | Raises FileNotFoundError |
Check with os.path.exists() or use try-except |
Deleting a folder using os.remove() |
Raises IsADirectoryError |
Use os.rmdir() or shutil.rmtree() |
Not checking permissions | Raises PermissionError |
Use try-except and check file ownership |
Accidental deletion of important files | Irreversible | Always double-check the file path or add a confirmation step |
Tips for Safe File Deletion
-
✅ Use
os.path.exists()
orPath.exists()
to check before deletion -
✅ Use
try-except
blocks to catch and handle errors -
✅ Log deleted files to a file or console
-
✅ Use soft-delete (move files to a "trash" folder) for safety
-
✅ Never delete user files automatically without confirmation
Summary Table
Task | Function |
---|---|
Delete file (os) | os.remove("file.txt") |
Delete file (pathlib) | Path("file.txt").unlink() |
Check existence (os) | os.path.exists("file.txt") |
Check existence (pathlib) | Path("file.txt").exists() |
Delete empty folder | os.rmdir("folder") |
Delete folder with contents | shutil.rmtree("folder") |
Final Thoughts
Python provides powerful tools to manage files, including deleting them. Whether you’re cleaning up logs, automating workflows, or building a file manager, learning how to safely delete files is essential. Just remember to always check file existence, handle exceptions, and use caution when deleting folders or important files.