对于我正在做的练习,我试图用read()
方法读取给定文件的内容两次。奇怪的是,当我第二次调用它时,它似乎没有将文件内容作为字符串返回?为什么我不能在打开的文件上调用read()两次?
这是我知道这是不是最有效或最佳方式代码
f = f.open()
# get the year
match = re.search(r'Popularity in (\d+)', f.read())
if match:
print match.group(1)
# get all the names
matches = re.findall(r'<td>(\d+)</td><td>(\w+)</td><td>(\w+)</td>', f.read())
if matches:
# matches is always None
当然,这是不是这里的点。问题是,为什么我不能拨打read()
两次?我必须重置文件句柄吗?或者关闭/重新打开文件,以此来做到这一点?
你从哪里得到读取不会改变文件状态的想法?您使用的是什么参考或教程? – 2010-10-11 12:29:31
我相信关闭和重新打开该文件应该基于下面的anwers工作。 – Anthony 2010-10-11 12:29:59
@Shynthriir:关闭并重新打开文件并不总是一个好主意,因为它可能在系统中有其他影响(临时文件,incron等)。 – 2010-10-11 12:32:22