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.