FileNotFoundError:[Errno 2]没有这样的文件或目录

时间:2014-03-09 13:25:27

标签: python file find

我正在尝试打开CSV文件,但由于某种原因,python无法找到它。

这是我的代码(它只是一个简单的代码,但我无法解决问题):

import csv

with open('address.csv','r') as f:
    reader = csv.reader(f)
    for row in reader:
        print row

6 个答案:

答案 0 :(得分:31)

当您打开名为address.csv的文件时,您告诉open()函数您的文件位于当前工作目录中。这称为相对路径。

为了让您了解这意味着什么,请将其添加到您的代码中:

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))

这将打印当前工作目录及其中的所有文件。

告诉open()函数文件所在位置的另一种方法是使用绝对路径,例如:

f = open("/Users/foo/address.csv")

答案 1 :(得分:24)

您正在使用相对路径,这意味着程序在工作目录中查找该文件。该错误告诉您工作目录中没有该名称的文件。

尝试使用完全路径或绝对路径。

答案 2 :(得分:3)

对于尽管传递绝对路径仍然仍然出错的人,应检查文件是否具有有效名称。对我来说,我试图用文件名创建一个带有“ /”的文件。删除“ /”后,便可以创建文件。

答案 3 :(得分:2)

使用确切路径。

import csv

with open('C:\path\address.csv','r') as f:
    reader = csv.reader(f)
    for row in reader:
        print row

答案 4 :(得分:2)

with open(fpath, 'rb') as myfile:
    fstr = myfile.read()

我遇到此错误,因为文件为空。这个答案可能不是这个问题的正确答案,但是应该给开发人员一个像我一样的提示。

答案 5 :(得分:1)

假设我们在“c:\ script.py”中有一个包含以下内容的脚本:

result = open("index.html","r")
print(result.read())

让我们说index.html文件也位于同一目录“c:\ index.html” 当我从cmd(或shell)

执行脚本时
C:\Users\Amine>python c:\script.py

您将收到错误:

FileNotFoundError: [Errno 2] No such file or directory: 'index.html'

因为“index.html”不在工作目录中,即“C:\ Users \ Amine>”。所以为了使它工作,你必须改变工作目录

C:\python script.py

'<html><head></head><body></body></html>'

这就是为什么最好使用绝对路径。