有一些代码给我带来了麻烦。它在我的另一个脚本中工作得很好,但我一定是搞砸了。
if csv:主要是因为我依赖于argparser中的-csv选项。但是,即使我在if statement之外使用适当的缩进运行它,它仍然返回相同的错误。
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()给了我:
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,我会得到:
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这样的东西,因为我在另一篇文章中看到,不起作用。
发布于 2013-08-06 07:10:56
如果你设置了一些赋值给csv的东西(看起来像一个字符串),那么你就隐藏了模块导入。所以,最简单的事情就是更改分配给csv的任何东西,而不是模块,并将其称为其他东西。
实际上,正在发生的事情是:
import csv
csv = 'bob'
csvout = csv.writer(somefile)删除对csv的进一步赋值,然后从那里开始...
发布于 2014-07-05 00:22:21
对于我来说,我已经将我的文件命名为csv.py。因此,当我从该文件import csv时,我实际上是在尝试导入相同的文件本身。
发布于 2020-10-28 23:10:29
在我的例子中,我的函数名恰好是csv()。一旦我重命名了我的函数,错误就消失了。
https://stackoverflow.com/questions/18069181
复制相似问题