How to Delete a File in Python

If you want to delete a file in Python, the most common way is to use os.remove().

For beginners, the safest approach is:

  • store the file path in a variable
  • check whether the file exists
  • delete it only if it is really there

This helps you avoid common errors like FileNotFoundError.

Quick answer

import os

file_path = "notes.txt"

if os.path.exists(file_path):
    os.remove(file_path)
    print("File deleted")
else:
    print("File does not exist")

Use os.remove() to delete a file. Check that the path exists first to avoid a FileNotFoundError.

What this page helps you do

  • Delete a single file with Python
  • Use the correct function for files, not folders
  • Check whether a file exists before deleting it
  • Understand common errors you may see

Delete a file with os.remove()

To delete a file, import the os module and pass the file path to os.remove().

import os

os.remove("notes.txt")
print("File deleted")

What this code does

  • import os gives you access to file system tools
  • os.remove("notes.txt") deletes the file
  • "notes.txt" is the path to the file

You can use:

  • a simple file name like "notes.txt"
  • a relative path like "data/report.csv"
  • an absolute path like "/Users/name/Documents/notes.txt"

This removes the file from the file system.

If you are new to file paths, see working with file paths in Python.

Check if the file exists first

A beginner-friendly way to delete a file is to check for it first.

import os

file_path = "notes.txt"

if os.path.exists(file_path):
    os.remove(file_path)
    print("File deleted")
else:
    print("File does not exist")

Why this helps

  • It avoids FileNotFoundError
  • It makes your script easier to understand
  • It is useful when the file may or may not exist

If you want more detail, see how to check if a file exists in Python and the os.path.exists() function explained.

Use the right path

A wrong path is one of the most common reasons file deletion fails.

Relative path

A relative path starts from the folder your script is currently using.

import os

file_path = "notes.txt"
print(os.getcwd())  # shows the current working folder

if os.path.exists(file_path):
    os.remove(file_path)

Absolute path

An absolute path gives the full location of the file.

import os

file_path = "/home/user/project/notes.txt"

if os.path.exists(file_path):
    os.remove(file_path)

If you are not sure what path your code is using

Print the path before deleting:

file_path = "notes.txt"
print(file_path)

You can also print the current working folder:

import os
print(os.getcwd())

If your file path problems are causing errors, see how to understand file paths in Python and how to fix FileNotFoundError: [Errno 2] No such file or directory.

Deleting with pathlib

You can also delete files with pathlib, which many beginners find easier to read.

from pathlib import Path

file_path = Path("notes.txt")

if file_path.exists():
    file_path.unlink()
    print("File deleted")
else:
    print("File does not exist")

Why use pathlib?

  • The code often reads more clearly
  • Path objects are convenient for file work
  • It works well when you do many path-related tasks in one script

Path.unlink() is for files, not directories.

Both styles are fine:

  • os.remove(path)
  • Path(path).unlink()

Choose one style and stay consistent in your script.

Common errors when deleting files

Here are the main errors you may see.

FileNotFoundError

This usually means:

  • the path is wrong
  • the file was already deleted
  • your script is running in a different folder than you expected

Example:

import os

os.remove("missing_file.txt")

Possible fix:

import os

file_path = "missing_file.txt"

if os.path.exists(file_path):
    os.remove(file_path)
else:
    print("File does not exist")

For a full fix guide, see FileNotFoundError: [Errno 2] No such file or directory.

PermissionError

This means your program does not have permission to delete the file.

Example:

import os

os.remove("protected_file.txt")

This can happen if:

  • the file belongs to another user
  • the file is protected by the operating system
  • another program is locking the file

See how to fix PermissionError: [Errno 13] Permission denied.

IsADirectoryError

This happens when you try to delete a folder with a file function.

import os

os.remove("my_folder")

os.remove() is for files only.

See how to fix IsADirectoryError: [Errno 21] Is a directory if that happens.

OSError

This is a broader file system error. It can happen for different system-level reasons.

A simple way to handle deletion errors is to use try and except:

import os

file_path = "notes.txt"

try:
    os.remove(file_path)
    print("File deleted")
except FileNotFoundError:
    print("File does not exist")
except PermissionError:
    print("You do not have permission to delete this file")
except OSError as error:
    print("A file system error happened:", error)

Simple safety tips

When deleting files, a few small checks can prevent bigger mistakes.

  • Print the file path before deleting important files
  • Test your code with a sample file first
  • Do not delete files directly from unchecked user input
  • Use try-except if your script should keep running after an error

Example:

import os

file_path = "test_file.txt"
print("About to delete:", file_path)

try:
    if os.path.isfile(file_path):
        os.remove(file_path)
        print("File deleted")
    else:
        print("That path is not a file")
except PermissionError:
    print("Permission denied")

Common mistakes

These are common causes of problems when deleting files:

  • Using the wrong file path
  • Trying to delete a folder instead of a file
  • Deleting a file that does not exist
  • Not having permission to delete the file
  • Confusing relative paths with absolute paths

Useful debugging checks:

print(file_path)
import os
print(os.getcwd())
import os
print(os.path.exists(file_path))
import os
print(os.path.isfile(file_path))
import os
print(os.listdir())

These commands help you answer basic questions:

  • What path is my code using?
  • Which folder is my script running in?
  • Does the path exist?
  • Is it really a file?
  • What files are in the current folder?

FAQ

What is the easiest way to delete a file in Python?

Use os.remove(path). For a safer beginner approach, check os.path.exists(path) first.

How do I delete a file only if it exists?

Use an if statement with os.path.exists(path), then call os.remove(path).

import os

file_path = "notes.txt"

if os.path.exists(file_path):
    os.remove(file_path)

Can os.remove() delete a folder?

No. It is for files. Folders need a different function. If you need to create folders, see how to create a directory in Python.

Why do I get FileNotFoundError when deleting a file?

Usually:

  • the file path is wrong
  • the file was already deleted
  • your script is running in a different folder than you expect

Should I use os.remove() or pathlib?

Both work.

  • os.remove() is common and simple
  • pathlib.Path.unlink() is also clear and beginner-friendly

See also