我正试图打开一个CSV文件,但由于某种原因python找不到它。
这是我的代码(这只是一个简单的代码,但我无法解决问题(:
import csv
with open('address.csv','r') as f:
reader = csv.reader(f)
for row in reader:
print row
打开名为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 %r: %s" % (cwd, files))
这将打印当前工作目录以及其中的所有文件
告诉open()
函数文件所在位置的另一种方法是使用绝对路径,例如:
f = open("/Users/foo/address.csv")
您使用的是相对路径,这意味着程序在工作目录中查找文件。错误告诉您工作目录中没有该名称的文件。
请尝试使用精确路径或绝对路径。
对于那些尽管传递了绝对路径但仍然会出错的人,应该检查文件是否有有效的名称。对我来说,我试图创建一个文件名为"/"的文件。删除"/"后,我就可以创建该文件了。
with open(fpath, 'rb') as myfile:
fstr = myfile.read()
我遇到此错误是因为文件为空。这个答案可能不是这个问题的正确答案,但希望它能给你们中的一些人一个提示。
假设我们在"c:\script.py"中有一个脚本,其中包含:
result = open("index.html","r")
print(result.read())
假设index.html文件也在同一目录"c:\index.html"中当我从cmd(或shell(执行脚本时
C:UsersAmine>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>'
这就是为什么最好使用绝对路径。
使用确切的路径。
import csv
with open('C:\path\address.csv', 'r') as f:
reader = csv.reader(f)
for row in reader:
print(row)