【发布时间】:2012-03-14 23:17:06
【问题描述】:
所以我从我用来学习 Python 的书中复制并粘贴了一个演示程序:
#!/usr/bin/env python
import csv
total = 0
priciest = ('',0,0,0)
r = csv.reader(open('purchases.csv'))
for row in r:
cost = float(row[1]) * float(row[2])
total += cost
if cost == priciest[3]:
priciest = row + [cost]
print("You spent", total)
print("Your priciest purchase was", priciest[1], priciest[0], "at a total cost of", priciest[3])
我得到了错误:
Traceback (most recent call last):
File "purchases.py", line 2, in <module>
import csv
File "/Users/Solomon/Desktop/Python/csv.py", line 5, in <module>
r = csv.read(open('purchases.csv'))
AttributeError: 'module' object has no attribute 'read'
为什么会这样?我如何解决它? 更新: 修复了所有错误 现在我得到:
Traceback (most recent call last):
File "purchases.py", line 6, in <module>
for row in r:
_csv.Error: line contains NULL byte
在 CSV.py 方面发生了什么: 我有一个名为 csv.py 的具有相同代码的文件,保存在同一目录中。我认为它被命名为 csv .py 的事实搞砸了,所以我创建了一个名为 purchase.py 的新文件,但忘记删除 csv
【问题讨论】:
-
还要确保删除(如果存在)任何可能在导入时创建的
csv.pyc文件 -
出现同样的错误,出于同样的原因