6

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

4 回答 4

6

您的代码使用的是相对路径;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模块建议你这样做:

如果csvfile是文件对象,则必须在不同的平台上使用 'b' 标志打开它。

Windows就是这样一个平台。

于 2013-08-05T16:11:10.727 回答
0

您当前的猜测是正确的:要么将文件放在您的测试代码目录中,要么将 python 指向正确的路径。

于 2013-08-05T16:10:46.100 回答
0

当您从不包含该文件的目录中运行 Python 脚本时,您可能会遇到此错误。

听起来很容易修复,将 CSV 文件与 .PY 文件放在同一文件夹中。但是,当您在 VSCode 之类的 IDE 下运行时,命令输出可能会cd在执行您的 python 文件时输出到另一个目录。

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'

所以它期待 'c:\git\awesome' 中的 CSV 文件。

要修复它,请使用完整文件名或 CD 到包含您要读取的 CSV 文件的目录。

于 2019-10-01T02:20:52.040 回答
-3

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

于 2016-01-15T21:57:33.757 回答