Python CSV не имеет атрибута 'Writer'
Там немного кода дает мне проблемы. Он отлично работал в другом script, но я, должно быть, испортил его как-то.
if csv
: это прежде всего потому, что я полагался на опцию -csv в argparser. Но даже если бы я запускал это с соответствующими отступами вне 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, поскольку я видел, что в другом сообщении SO не работает.
Ответы
Ответ 1
Если вы установили что-то, что присваивается csv
(выглядит как строка), вы затеняете импорт модуля. Итак, самое простое - просто изменить любое присваивание csv
, которое не является модулем, и называть его чем-то другим...
Фактически, что происходит:
import csv
csv = 'bob'
csvout = csv.writer(somefile)
Удалите дальнейшее назначение csv
и идите оттуда...
Ответ 2
Для меня я назвал свой файл csv.py
. Поэтому, когда я import csv
из этого файла, я по существу пытался импортировать тот же самый файл.
Ответ 3
Как вы переименовываете файл csv.py только в.py файле в этой ситуации? Я создал свой.py файл в visual studio, и насколько мне известно, я не изменил тип файла, который будет.csv.py?
Это мой код до сих пор (анонимный):
импорт csv
path = r'filelocation.filename.csv '
с открытым (путь, 'rb') в виде csvfile:
print (csv)
print(csvfile)
И это дает следующее:
'module' csv 'из' C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\lib\csv.py ''
Как исправить ситуацию.csv.py, пожалуйста?