Checking if a file or directory or link exists in Python
In this article, we are going to see how to check if a file, directory or a link exists using python.
Let’s see one by one
- Check if a path exists
- Check if a file exists
- Check if a Directory exists
- Check if given path is a link
Python – Check if a path exists :
Syntax- os.path.exists(path)
The above function will return true if the path exists and false if it does not. It can take either relative or absolute path as parameter into the function.
import os pathString = "E:\Python" # Check for path existence if os.path.exists(pathString): print("Path Exists!") else: print("Path could not be reached")
Output : Path Exists!
However we should ensure that we have sufficient user rights available to access the path.
Python – Check if a file exists :
While accessing files inside python, if the file does not exist beforehand, we will get a FileNotFoundError
. To avoid these errors we should always check if a particular file exists. For that we would have to use the following function
Syntax- os.path.isfile(path)
import os filePathString = "E:\Python\data.csv" # Check for file existence if os.path.isfile(filePathString): #If the file exists display its contents print("File Exists!") fileHandler = open(filePathString, "r") fileData = fileHandler.read() fileHandler.close() print(fileData) else: print("File could not be found")
Output : File Exists! Id,Name,Course,City,Session 21,Jill,DSA,Texas,Night 22,Rachel,DSA,Tokyo,Day 23,Kirti,ML,Paris,Day 32,Veena,DSA,New York,Night
Python – Check if a Directory exists :
To check if a given directory exists or not, we can use the following function
Syntax- os.path.isdir(path)
import os filePathString = "E:\Python\.vscode" # Check for directories existence if os.path.isdir(filePathString): # If the directory exists display its name print(filePathString, "does exist") else: print("Directory could not be found")
Output : .vscode does exist
Python – Check if given path is a link :
We can use isdir( )
and isfile( )
to check if a symbolic(not broken) link exists. For that we have a dedicated function in os module
Syntax- os.path.islink(path)
We will be using path.exists
and path.islink
together in this function so that we can check if the link exists and if it is intact.
import os linkPathString = "E:\Python\data.csv" # Check for link if os.path.exists(linkPathString) and os.path.islink(linkPathString): print("The link is present and not broken") else: print("Link could not be found or is broken")
Output : Link could not be found or is broken
As the path we provided is not a link, the program returns the else condition.