對於我正在做的練習,我試圖用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