在python中读取csv文件时出错“没有这样的文件或目录”

时间:2013-08-05 16:09:04

标签: python csv filepath

目前我正在尝试使用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'

4 个答案:

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

重新命名您的文件夹。这对我有用。