AttributeError: объект 'str' не имеет атрибута 'write'
Я работаю над Python и определил переменную, называемую "_headers", как показано ниже
_headers = ('id',
'recipient_address_1',
'recipient_address_2',
'recipient_address_3',
'recipient_address_4',
'recipient_address_5',
'recipient_address_6',
'recipient_postcode',
)
и для того, чтобы записать это в выходной файл, я написал следующий оператор, но он выдает мне ошибку "AttributeError: объект" str "не имеет атрибута" write ""
with open(outfile, 'w') as f:
outfile.write(self._headers)
print done
Пожалуйста, помогите
Ответы
Ответ 1
Вы хотите f.write
, а не outfile.write
...
outfile
- это имя файла в виде строки. f
- это файловый объект.
Как отмечено в комментариях, file.write
ожидает строку, а не последовательность. Если вы хотите записать данные из последовательности, вы можете использовать file.writelines
. например f.writelines(self._headers)
. Но будьте осторожны, это не добавляет новую строку для каждой строки. Вы должны сделать это сами.:)
Ответ 2
Предполагая, что вам нужно 1 заголовок на строку, попробуйте следующее:
with open(outfile, 'w') as f:
f.write('\n'.join(self._headers))
print done
Ответ 3
Как можно ближе к script:
>>> _headers = ('id',
... 'recipient_address_1',
... 'recipient_address_2',
... 'recipient_address_3',
... 'recipient_address_4',
... 'recipient_address_5',
... 'recipient_address_6',
... 'recipient_postcode',
... )
>>> done = "Operation successfully completed"
>>> with open('outfile', 'w') as f:
... for line in _headers:
... f.write(line + "\n")
... print done
Operation successfully completed