Подтвердить что ты не робот

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 не работает.

4b9b3361

Ответ 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, пожалуйста?