I am trying to open a CSV file but for some reason python cannot locate it.
Here is my code (it’s just a simple code but I cannot solve the problem):
import csv with open('address.csv','r') as f: reader = csv.reader(f) for row in reader: print row
When you open a file with the name
address.csv, you are telling the
open() function that your file is in the current working directory. This is called a relative path.
To give you an idea of what that means, add this to your code:
import os cwd = os.getcwd() # Get the current working directory (cwd) files = os.listdir(cwd) # Get all the files in that directory print("Files in %r: %s" % (cwd, files))
That will print the current working directory along with all the files in it.
Another way to tell the
open() function where your file is located is by using an absolute path, e.g.:
f = open("/Users/foo/address.csv")
You are using a relative path, which means that the program looks for the file in the working directory. The error is telling you that there is no file of that name in the working directory.
Try using the exact, or absolute, path.
For people who are still getting error despite of passing absolute path, should check that if file has a valid name. For me I was trying to create a file with ‘/’ in the file name. As soon as I removed ‘/’, I was able to create the file.
with open(fpath, 'rb') as myfile: fstr = myfile.read()
I encounter this error because the file is empty. This answer may not a correct answer for this question but should give developers a hint like me.
Use the exact path.
import csv with open('C:\path\address.csv', 'r') as f: reader = csv.reader(f) for row in reader: print(row)
Lets say we have a script in “c:script.py” that contain :
result = open("index.html","r") print(result.read())
Lets say that the index.html file is also in the same directory “c:index.html” when i execute the script from cmd (or shell)
You will get error:
FileNotFoundError: [Errno 2] No such file or directory: 'index.html'
And that because “index.html” is not in working directory which is “C:UsersAmine>”. so in order to make it work you have to change the working directory
C:python script.py '<html><head></head><body></body></html>'
This is why is it preferable to use absolute path.