web-dev-qa-db-ja.com

Python CSVには属性 'Writer'がありません

少しコードが問題を引き起こしています。それは私が持っていた別のスクリプトでうまく機能しましたが、どういうわけかそれを台無しにしたに違いありません。

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'

私はどんな愚かなことを間違っていますか?別のSOポストで動作しないことがわかったので、ファイル名をtest.pyなどに変更してみました。

17
Interrupt

csvに割り当てるもの(文字列のように見える)を設定した場合は、モジュールのインポートをシャドウイングしています。したがって、最も簡単なのは、モジュールではないcsvに割り当てているものを変更し、それを別の名前で呼び出すことです...

実際に何が起こっているのですか:

import csv
csv = 'bob'
csvout = csv.writer(somefile)

csvへの追加の割り当てを削除し、そこから移動します...

15
Jon Clements

私は自分のファイルにcsv.py。だから私はimport csvそのファイルから、基本的に同じファイル自体をインポートしようとしました。

54
thameera