FileNotFoundError: [Errno 2] No such file or directory [duplicate]
- 2025-02-07 08:44:00
- admin 原创
- 67
问题描述:
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
解决方案 1:
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")
解决方案 2:
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.
解决方案 3:
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.
解决方案 4:
with open(fpath, 'rb') as myfile:
fstr = myfile.read()
I encounter this error because the file is empty. This answer may not be a correct answer for this question but hopefully it can give some of you a hint.
解决方案 5:
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)
C:UsersAmine>python c:script.py
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:\Users\Amine>". 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.
解决方案 6:
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)