Python CSV没有属性'Writer'

Int*_*upt 16 csv python-2.7 nonetype

有一些代码给我带来了麻烦.它在我的另一个剧本中工作得很好,但我必须以某种方式弄乱它.

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()
Run Code Online (Sandbox Code Playgroud)

给我:

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'
Run Code Online (Sandbox Code Playgroud)

如果我删除了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'
Run Code Online (Sandbox Code Playgroud)

我做错了什么傻事?我确实尝试将文件名更改为test.py之类的东西,因为我在另一个SO帖子中看到了,但是没有用.

tha*_*era 53

对我来说,我已经命名了我的档案csv.py.因此,当我import csv从该文件中获取时,我本质上是尝试导入相同的文件.

  • 哈哈......似乎是一个常见的错误......对我而言......这让我发疯了...... (4认同)
  • 我也一样:-) (2认同)
  • 同样在这里...(facepalm) (2认同)
  • *捂脸*--@thameera 谢谢!将我的文件更改为“not_csv.py”,现在完美运行:) (2认同)

Jon*_*nts 15

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

实际上发生的事情是:

import csv
csv = 'bob'
csvout = csv.writer(somefile)
Run Code Online (Sandbox Code Playgroud)

删除进一步的任务,csv然后去那里......