目前我正在尝试使用python中的csv模块读取csv文件。当我运行下面的代码时,我得到一个错误,指出该文件不存在。我的第一个猜测是,我可能将文件保存在错误的位置,或者我需要为pyton提供文件路径。目前我将文件保存在C:\ Documents and Settings \ eag29278 \ My Documents \ python test code \ test_satdata.csv中。
一方面注意我注意确定将模式设置为'rb'(读二进制)是正确的举动。
import csv
with open('test_satdata.csv', 'rb') as csvfile:
satreader = csv.reader(csvfile, delimiter=' ', lineterminator=" ")
for row in satreader:
print ', '.join(row)
这是错误代码。
Traceback (most recent call last):
File "C:/Python27/test code/test csv parse.py", line 2, in <module>
with open('test_satdata.csv', 'rb') as csvfile:
IOError: [Errno 2] No such file or directory: 'test_satdata.csv'
答案 0 :(得分:4)
您的代码使用的是相对路径; python正在查看当前目录(无论是什么)加载您的文件。当前目录 的内容取决于您如何启动Python脚本以及是否执行了可能更改当前工作目录的任何代码。
改为使用完整的绝对路径:
path = r'C:\Documents and Settings\eag29278\My Documents\python test code\test_satdata.csv'
with open(path, 'rb') as csvfile:
使用'rb'
完全正确,csv
module建议您这样做:
如果 csvfile 是一个文件对象,则必须在平台上使用“b”标志打开它,这会产生影响。
Windows 是这样的平台。
答案 1 :(得分:0)
您当前的猜测是正确的:要么将文件放在测试代码目录中,要么将python指向正确的路径。
答案 2 :(得分:0)
在不包含文件的目录中运行Python脚本时,您会遇到此错误。
易于修复的声音,将CSV文件与.PY文件放在同一文件夹中。但是,当您在像VSCode这样的IDE下运行时,当命令执行python文件时,命令输出可能会cd
到另一个目录。
PS C:\git\awesome> cd 'c:\git\awesome'; ${env:PYTHONIOENCODING}='UTF-8'; ${env:PYTHONUNBUFFERED}='1';
& 'C:\Program Files (x86)\Python37-32\python.exe' 'c:\Users\jeremy\.vscode\extensions\ms-python.python-2019.9.34911\pythonFiles\ptvsd_launcher.py'
'--default' '--client' '--host' 'localhost' '--port' '1089'
'c:\git\Project\ReadCSV.py'
看看我的状态如何,第一个命令是:cd'c:\ git \ awesome';
然后它执行python文件:'c:\ git \ Project \ ReadCSV.py'
因此,它希望CSV文件位于“ c:\ git \ awesome”中。
要解决此问题,请使用完整文件名或CD到包含您要读取的CSV文件的目录中。
答案 3 :(得分:-1)
重新命名您的文件夹。这对我有用。