csv AttributeError: 'module' object has no attribute 'reader'

python csv by Xudong Zhang @ 2015-10-16 13:52:06

我在试用一个很简单的python脚本是碰到这个问题的. 脚本:

import csv

with open("1point.csv") as f:
    content = csv.reader(f, delimiter=",", quotechar='"')
    for row in content:
        print(row)

错误信息:

Traceback (most recent call last):
  File "csv.py", line 1, in <module>
    import csv
  File "/home/zxd/tmp/csv.py", line 4, in <module>
    content = csv.reader(f, delimiter=",", quotechar='"')
AttributeError: 'module' object has no attribute 'reader'

这是怎么回事?


####解决办法:

将csv.py文件改成别的名字, 不要跟import的模块同名,改成csvfile.py什么的.

同时,如果该目录有csv.pyc文件的话,删掉.

####原因:

当文件名为csv.py时,第一行import csv不会去import系统的csv模块,而是import当前文件夹下的csv.py文件了,这个模块没有reader这个属性,自然会报错.

by Xudong Zhang @2015-10-14 12:13:37.933 +0800 CST


我来回答

Markdown格式技巧

  • 行尾添加2个空格或者添加一个空行就能换行
  • 斜体: *hello* 或者 _world_
  • 加粗: **hello** 或者 __world__
  • 代码块: 添加空行,然后代码缩进4个空格
  • 特殊字符: 用\避免转义;\*就是*本身
  • python: `__name__`可以以代码形式输出__name__
  • 一个简单的例子

切换到移动版