Python. Как исправить ошибку: "print tablecsv.read() AttributeError: объект 'tuple' не имеет атрибута 'read'

61
5

Я lern Python и пытаюсь сделать parcer для таблицы html, а затем я хочу создать CSV файл для импорта данных в mySQL.

>>> htmlread = handlestatbydate.read()
>>> soup = BeautifulSoup("".join(htmlread))
>>> souptable = soup('tbody', limit=2)[1].findAll('tr')
>>> souptablestr = ''.join(str(t) for t in souptable)
>>> reclearbyonce = re.compile('</tr><tr>\n|^<tr>\n|</tr>$')
>>> recleartd = re.compile(r'</td>|<td.*?>')
>>> retdtd = re.compile('""| ')
>>> soupclearbyonce = reclearbyonce.sub('', souptablestr)
>>> soupcleartd = recleartd.sub('"', soupclearbyonce)
>>> souptdtd = retdtd.sub('","', soupcleartd)
>>> print souptdtd
"59","00059413","00059413","70000000001","2011-08-22","18:01:48","0:07","0.45"
"60","00059413","00059413","70000000002","2011-08-22","18:49:48","0:43","1.95"
"61","00059413","00059413","70000000003","2011-08-22","18:52:50","5:07","11.70"
"62","00059413","00059413","70000000003","2011-08-22","19:02:47","4:10","9.75"

Затем я создаю файл csv и имею ошибку.

>>> tablecsv = file(r'/tmp/table.csv', 'w')
>>> tablecsv.write("".join(souptdtd))
>>> tablecsv = (r'/tmp/table.csv', 'r')
>>> print tablecsv.read()

print tablecsv.read()
AttributeError: 'tuple' object has no attribute 'read

К сожалению, я не могу понять, когда и как я могу создать кортеж. Может ли кто-нибудь объяснить мне, когда я ошибаюсь и как это исправить?

спросил(а) 2021-01-19T17:22:47+03:00 2 месяца, 3 недели назад
1
Решение
114

Вы пропустили имя метода здесь: tablecsv = (r'/tmp/table.csv', 'r') то есть вы, вероятно, захотите открыть файл.eg tablecsv = open(r'/tmp/table.csv', 'r')

Вы также должны закрыть файл после записи, прежде чем читать его с помощью tablecsv.close()

Если у вас есть список элементов в скобках, например (r'/tmp/table.csv', 'r') то это создает кортеж.

ответил(а) 2021-01-19T17:22:47+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема