Python. 如何修复错误:“print tablecsv.read() 属性错误:'tuple'对象没有'read'属性”

0 投票
1 回答
519 浏览
提问于 2025-04-17 02:16

我在学习Python,想做一个可以解析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

不幸的是,我不太明白什么时候以及如何创建元组。能不能有人告诉我我哪里出错了,怎么解决这个问题?

1 个回答

0

你在这里漏掉了方法名称:tablecsv = (r'/tmp/table.csv', 'r')。也就是说,你可能想要打开这个文件,比如说用tablecsv = open(r'/tmp/table.csv', 'r')

在写完文件后,你还应该在读取之前关闭文件,方法是用tablecsv.close()

如果你只是把一些项目放在括号里,比如(r'/tmp/table.csv', 'r'),那么这会创建一个元组。

撰写回答