2015-04-17 71 views
1

我试图执行这个程序来读取崇高text2中的csv文件获取错误消息“AttributeError:'模块'对象没有属性'编写器'” 任何解决方案。AttributeError:'module'对象没有属性'writer'

import sys 
import csv 
def readcsv(): 
    f = open("F://xyz.csv",'r') 
    readerr=csv.reader(f) 
    for row in readerr(): 
     print row 
    f.close() 
readcsv() 

完整的错误信息

The current working directory is F:\ Traceback (most recent call last): File "F:\readfiles.py", line 12, in readcsv()
File "F:\readfiles.py", line 7, in readcsv readerr=csv.reader(f) AttributeError: 'module' object has no attribute 'reader' [Finished in 1.4s with exit code 1]

+0

因此,没有这个文件实际上存在吗? 'f'实际上是一个有效的文件对象? – EdChum

+0

对不起,错误是:AttributeError:'module'对象没有属性'reader' –

+0

你的'sys.path'中显然有另一个名为'csv'的模块 - 要知道哪一个模块,只需添加一个'print csv'在'import csv'之后。 –

回答

4

调试步骤: -

理想csv应该有reader模块。我最好的猜测是你有一些名为csv的模块正在被改进。你可以尝试蟒蛇控制台上执行以下操作: - ”

>>>import csv 
>>>dir(csv) 

如果你没有找到readerwriter等模块,没准你正在导入具有相同名称的错误的模块。现在尝试>>>csv.__file__,重命名此文件并再次按照上一步操作。

一般来说你的代码可能看起来Python的方式如下: -

with open('csvfile.csv', 'rb') as csvfile: 
    rows = csv.reader(csvfile) 
    for row in rows: 
     print row 
0

的语法稍微偏离。

在READERR行():

的括号是函数的语法。 该命令只能作用于一个对象。

如果更改了该行这一点,它会工作 为行中的读者:

+0

OOPS,修改后的语法并没有将其纳入读者行中的答案: –