FileNotFoundError: [Errno 2] No such file or directory
本问题已经有最佳答案,请猛点这里访问。
我试图打开一个csv文件,但由于某种原因,python找不到它。
这是我的代码(这只是一个简单的代码,但我无法解决问题):
1 2 3 4 5 6 | import csv with open('address.csv','r') as f: reader = csv.reader(f) for row in reader: print row |
当您打开名为
要了解这意味着什么,请将其添加到代码中:
1 2 3 4 5 | 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 '%s': %s" % (cwd, files)) |
这将打印当前工作目录以及其中的所有文件。
告诉
1 | f = open("/Users/foo/address.csv") |
您使用的是相对路径,这意味着程序在工作目录中查找文件。错误是告诉您工作目录中没有该名称的文件。
尝试使用精确或绝对的路径。
对于那些尽管传递了绝对路径仍然出错的人,应该检查文件是否有有效的名称。对于我来说,我试图创建一个文件名为"/"的文件。我一删除'/'就可以创建文件。
1 2 | with open(fpath, 'rb') as myfile: fstr = myfile.read() |
我遇到这个错误是因为文件是空的。这个答案可能不是这个问题的正确答案,但应该给开发人员一个像我这样的提示。
使用正确的路径。
1 2 3 4 5 6 | import csv with open('C:\path\address.csv','r') as f: reader = csv.reader(f) for row in reader: print row |
假设我们在"c:script.py"中有一个脚本,其中包含:
1 2 | result = open("index.html","r") print(result.read()) |
假设index.html文件也在同一目录"c:index.html"中。当我从cmd(或shell)执行脚本时
1 | C:\Users\Amine>python c:\script.py |
您将得到错误:
1 | FileNotFoundError: [Errno 2] No such file or directory: 'index.html' |
这是因为"index.html"不在"c:usersamine>"的工作目录中。所以为了使它工作,你必须更改工作目录
1 2 3 | C:\python script.py '<html><head></head><body></body></html>' |
这就是为什么最好使用绝对路径。