While working with files or directories, we sometimes come across the “No such file or directory” Error in our python program.
The “FileNotFoundError: No such file or directory” error occurs when we try to access or open a file that doesn’t exist at the specified location. To fix this error, we can add the file to the specified location or write the path to the program correctly.
Let’s see an example of the error
my_file = open('example.txt', 'r')
lines = my_file.readlines()
print(lines)
And if we do not have the example.txt, then it will be unable to read the file and throw us the error in the terminal.
FileNotFoundError: [Errno 2] No such file or directory: 'example.txt'
Now to give the correct path of the file in the program we specify the path of the file. There are two types of paths in python:
- Absolute path, and
- Relative path
The absolute path
starts from the root directory of your computer. For example, if you are a windows user, it would be C:Pythonnotesexample.txt
.
So in code, we will write
my_file = open(r'C:Pythonnotesexample.txt')
lines = my_file.readlines()
The relative path
in python is the directory from which you are running the python code. It is also known as the working directory of your project.
So the relative path of the example.txt file in the working directory will be:
my_file = open('example.txt')
lines = my_file.readlines()
Use os module in python
We can also use the os
module to print the content of the current working directory (cwd) and to check if the specified file exists or not.
Using os
module we can do two things:
- Check if the specified file exists in the current directory.
- Change to the directory that contains the file.
Check if file exists in the current directory
To check the current directory of the program, we use the os.getcwd()
function.
import o
current_dir = os.getcwd()
This will give the absolute path of the current directory of your program.
Next, to check the content of the directory we can use the os.listdir()
function.
my_files = os.listdir(current_dir)
The os.listdir()
function gives us a list of files name in the working directory.
We can check for the specified file from the list using the in
keyword.
import os
current_dir = os.getcwd()
my_files = os.listdir(current_dir)
print(example.txt in my_files) #False
It will print False
since the file is not present in the directory.
Change the current directory
We can use the os
module to change the current working directory to the specified path of the file. To change, we have to use the os.chdir()
function.
For example, let’s say our main python program is in the D:/Python_program
directory and the file (example.txt
) is found in C:/Python
directory.
So to open the file, we will change the current directory to the path that contains the example.txt
file.
import os
current_file_dir = os.chdir(r'C:/Python')
my_file = open('example.txt','r')
lines = my_file.readlines()
print(lines)
Here, since the example.txt file exists in C:/Python
folder, we have changed the current directory using os.chdir()
function.
And then, we wrote the relative path of the file to open and read it.
Conclusion:
Here, we have learned to solve the “FileNotFoundError: [Errno 2] No such file or directory” error from our python program. And learned to set the absolute and relative path of our files using os module.
Other Articles You’ll Also Like: