AttributeError:“模块”对象没有属性“作者”

Posted

技术标签:

【中文标题】AttributeError:“模块”对象没有属性“作者”【英文标题】:AttributeError: 'module' object has no attribute 'writer' 【发布时间】:2015-06-24 04:37:28 【问题描述】:

我正在尝试执行以下程序以在 sublime text2 中读取 csv 文件收到错误消息“AttributeError:'module' object has no attribute '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()

完整的错误消息

当前工作目录为 F:\Traceback(最近一次调用 最后):文件“F:\readfiles.py”,第 12 行,在 readcsv() 文件“F:\readfiles.py”,第 7 行,在 readcsv readerr=csv.reader(f) AttributeError:“模块”对象没有属性“读者” [在 1.4 秒内完成,退出代码为 1]

【问题讨论】:

那么这个文件真的存在吗? f 实际上是一个有效的文件对象吗? 抱歉错误是:AttributeError: 'module' object has no attribute 'reader' 您的sys.path 中显然还有另一个名为csv 的模块 - 要知道是哪个模块,只需在import csv 之后添加一个print csv 行。 除了你的错误之外,这行看起来有问题:for row in readerr(): 不应该是for row in readerr:吗? @EdChum .. 是的,但错误就在那之前。 【参考方案1】:

调试步骤:-

理想情况下csv 应该有reader 模块。我最好的猜测是您还有其他一些名为 csv 的模块正在导入。您可以在 python 控制台上尝试以下操作吗:-'

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

如果您没有找到readerwriter 等模块,很可能是您导入了同名的错误模块。现在尝试>>>csv.__file__,重命名此文件并再次执行上一步。

一般而言,您的代码可能看起来像以下方式:-

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

【讨论】:

【参考方案2】:

语法稍有偏差。

对于 readerr() 中的行:

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

如果你把那行改成这样,它会起作用 对于阅读器中的行:

【讨论】:

OOPS ,修改后的语法没有成为 readerr 中 row 的答案:【参考方案3】:

您必须将该文件命名为 csv.py,重命名它可以解决错误。

【讨论】:

【参考方案4】:

我遇到了同样的错误,原因是我的文件名也被称为“csv.py” 尝试将其更改为其他内容,然后重试。应该管用 !! :)

【讨论】:

以上是关于AttributeError:“模块”对象没有属性“作者”的主要内容,如果未能解决你的问题,请参考以下文章

AttributeError:“模块”对象没有属性

AttributeError:“模块”对象没有属性“百分位”

AttributeError:“模块”对象没有属性

无法安装模块 - AttributeError: 'NoneType' 对象没有属性 'loader'

AttributeError:“模块”对象没有属性“urlopen”

AttributeError:“模块”对象没有属性“ORB”