1

我一生都无法弄清楚为什么我不断收到此错误。所以我有一个运行以下代码的 django 模块

c = open('file.csv', 'rb')
reader = csv.reader(c)
rows = []
rownum = 0
for row in reader:
    # Skip header
    if rownum != 0:
        rows.append(row)
    rownum += 1
c.close()
return rows

有几件事要记住。file.csv 与调用此函数的 python 文件位于同一目录中。我在 django 环境之外的 python 解释器中运行这个相同的代码,它工作得很好。我试过rb和r,都不起作用。我不知道为什么它不起作用。

有什么我想念的吗?

我正在使用python2.6

4

1 回答 1

3

当 Python 想要使用 python 命令执行文件时,它不会像解释器那样在 py-Location 中查找文件,而是在其他文件夹中查找文件(不知道具体在哪个文件夹中)。那么如何解决这个问题:如果要保持没有固定文件路径的独立性,请使用以下代码:

import os
workpath = os.path.dirname(os.path.abspath(__file__)) #Returns the Path your .py file is in
c = open(os.path.join(workpath, 'file.csv'), 'rb')
reader = csv.reader(c)
rows = []
rownum = 0
for row in reader:
    # Skip header
    if rownum != 0:
        rows.append(row)
    rownum += 1
c.close()
return rows

现在只需将 .csv 文件放在(或保留)与主 .py-Script 相同的文件夹中 - 就完成了!(脚本未经测试,告诉我是否因为一些愚蠢而使它不起作用)

于 2013-08-31T05:08:45.960 回答