首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python CSV没有'Writer‘属性

Python CSV没有'Writer‘属性
EN

Stack Overflow用户
提问于 2013-08-06 06:58:51
回答 3查看 32.5K关注 0票数 21

有一些代码给我带来了麻烦。它在我的另一个脚本中工作得很好,但我一定是搞砸了。

if csv:主要是因为我依赖于argparser中的-csv选项。但是,即使我在if statement之外使用适当的缩进运行它,它仍然返回相同的错误。

代码语言:javascript
复制
import csv

if csv:
    with open('output.csv', 'wb') as csvfile:
        csvout = csv.writer(csvfile, delimiter=',',
            quotechar=',', quoting=csv.QUOTE_MINIMAL)
        csvout.writerow(['A', 'B', 'C'])
        csvfile.close()

给了我:

代码语言:javascript
复制
Traceback (most recent call last):
  File "import csv.py", line 34, in <module>
    csvout = csv.writer(csvfile, delimiter=',',
AttributeError: 'str' object has no attribute 'writer'

如果我删除if statement,我会得到:

代码语言:javascript
复制
Traceback (most recent call last):
  File "C:\import csv.py", line 34, in <module>
    csvout = csv.writer(csvfile, delimiter=',',
AttributeError: 'NoneType' object has no attribute 'writer'

我做错了什么傻事?我确实试着将文件名改为像test.py这样的东西,因为我在另一篇文章中看到,不起作用。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-06 07:10:56

如果你设置了一些赋值给csv的东西(看起来像一个字符串),那么你就隐藏了模块导入。所以,最简单的事情就是更改分配给csv的任何东西,而不是模块,并将其称为其他东西。

实际上,正在发生的事情是:

代码语言:javascript
复制
import csv
csv = 'bob'
csvout = csv.writer(somefile)

删除对csv的进一步赋值,然后从那里开始...

票数 15
EN

Stack Overflow用户

发布于 2014-07-05 00:22:21

对于我来说,我已经将我的文件命名为csv.py。因此,当我从该文件import csv时,我实际上是在尝试导入相同的文件本身。

票数 70
EN

Stack Overflow用户

发布于 2020-10-28 23:10:29

在我的例子中,我的函数名恰好是csv()。一旦我重命名了我的函数,错误就消失了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18069181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档