os.path.exists() Function Explained
os.path.exists() checks whether a path exists in Python.
You can use it to test:
- whether a file exists
- whether a folder exists
- whether a path is missing
This is useful before you try to open, delete, rename, or work with a path.
Quick example
import os
path = "example.txt"
if os.path.exists(path):
print("Path exists")
else:
print("Path does not exist")
Use this to quickly check whether a file or folder path exists before trying to open or use it.
What os.path.exists() does
os.path.exists() is part of the os.path tools in Python.
It:
- checks whether a path exists
- works for both files and directories
- returns
Trueif the path exists - returns
Falseif the path does not exist
It does not tell you whether the path is a file or a folder. It only checks whether something exists at that path.
If you want a broader introduction to path tools, see the Python os module overview.
Basic syntax
The basic syntax is:
import os
os.path.exists(path)
How it works
pathis usually a string- the function returns a Boolean value
- that value is either
TrueorFalse
Example:
import os
result = os.path.exists("example.txt")
print(result)
Possible output:
True
or:
False
Simple example
Here is a simple file check:
import os
file_path = "example.txt"
if os.path.exists(file_path):
print("The file exists.")
else:
print("The file does not exist.")
Expected output if the file exists
The file exists.
Expected output if the file does not exist
The file does not exist.
This is a common pattern before opening a file. If you are doing that often, you may also want to read how to check if a file exists in Python.
Checking a directory
os.path.exists() also works with folders.
import os
folder_path = "data"
if os.path.exists(folder_path):
print("The folder exists.")
else:
print("The folder does not exist.")
This checks whether the path exists, but it does not tell you whether data is a file or a directory.
For example, if a file named data exists, os.path.exists("data") will still return True.
File or folder? Use the right function
Use the right function for the job:
os.path.exists()→ checks whether any path existsos.path.isfile()→ checks whether the path exists and is a fileos.path.isdir()→ checks whether the path exists and is a directory
Example:
import os
path = "example.txt"
print(os.path.exists(path))
print(os.path.isfile(path))
print(os.path.isdir(path))
Possible output for a real file:
True
True
False
Possible output for a real folder:
True
False
True
If you are building paths from folder names and file names, os.path.join() explained is also useful.
Common beginner mistakes
Beginners often run into problems with os.path.exists() because the path is not what they think it is.
Common mistakes include:
- using the wrong relative path
- forgetting that the current working directory matters
- checking a path after the file was already deleted or moved
- assuming
exists()means the file can be opened
1. Using the wrong relative path
This path:
"example.txt"
means “look in the current working directory.”
This path:
"data/example.txt"
means “look in the data folder inside the current working directory.”
If your file is somewhere else, exists() will return False.
2. Forgetting about the current working directory
Python does not always run from the same folder as your script.
Check your current working directory with:
import os
print(os.getcwd())
If needed, see os.getcwd() explained to understand what folder your script is using.
3. Checking after the file was moved or deleted
A path that existed a moment ago may no longer exist.
For example:
- the file was deleted
- the file was renamed
- the file was moved to another folder
So os.path.exists() only tells you what is true at the moment you check.
4. Assuming exists() means the file can be opened
A path may exist, but you can still have problems opening it.
For example:
- you may not have permission
- it may be locked by another process
- it may be a directory, not a file
If you try to open a missing file, Python may raise a FileNotFoundError: Errno 2 No such file or directory.
Path examples beginners often need
Here are some common path formats.
File in the current folder
example.txt
File in a subfolder
data/example.txt
Absolute path
An absolute path starts from the full location on your computer.
Windows example:
C:\Users\YourName\Documents\example.txt
In a normal Python string, backslashes need escaping:
path = "C:\\Users\\YourName\\Documents\\example.txt"
You can also use forward slashes on Windows:
path = "C:/Users/YourName/Documents/example.txt"
macOS/Linux example:
path = "/home/yourname/example.txt"
If you want a beginner-friendly explanation of relative and absolute paths, see working with file paths in Python.
When to use os.path.exists()
os.path.exists() is useful in many real programs.
Use it:
- before opening a file
- before deleting or renaming a file
- before creating something that should not already exist
- when validating user input paths
Example:
import os
path = input("Enter a file path: ")
if os.path.exists(path):
print("That path exists.")
else:
print("That path does not exist.")
Common causes of unexpected results
If os.path.exists() is returning False when you expect True, common causes are:
- the path string is misspelled
- the file is in a different folder than expected
- the script is running from a different working directory
- a relative path is used when an absolute path is needed
- you expect
exists()to check permissions instead of existence
Useful debugging checks
These quick commands can help you debug path problems:
import os
print(os.getcwd())
import os
print(os.path.exists("example.txt"))
import os
print(os.path.isfile("example.txt"))
import os
print(os.path.isdir("example.txt"))
import os
print(os.listdir())
These checks help you answer questions like:
- What folder am I running from?
- Does this path exist?
- Is it a file?
- Is it a directory?
- What files are actually in the current folder?
FAQ
Does os.path.exists() work for folders?
Yes. It returns True for both files and directories if the path exists.
What does os.path.exists() return?
It returns True if the path exists and False if it does not.
What is the difference between os.path.exists() and os.path.isfile()?
exists() checks whether any path exists. isfile() checks whether the path exists and is a file.
Why does os.path.exists() return False when the file is there?
The path may be wrong, or your script may be running from a different working directory than you expect.