我正在尝试打开一个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()
我遇到这个错误是因为文件为空。这个答案可能不是针对这个问题的正确答案,但希望它能给你们一些提示。
import csv
with open('C:\\path\\address.csv', 'r') as f:
reader = csv.reader(f)
for row in reader:
print(row)
result = open("index.html","r")
print(result.read())
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>'
这就是为什么最好使用绝对路径的原因。
address.csv
文件是否与你的Python(.py)代码在同一个文件夹中?你正在使用相对路径。如果不是,你需要提供完整路径,例如C:\folder\folder\address.csv
。 - Cory Kramer