迭代檔案兩次:了解 Python 的檔案迭代機制
在 Python 中,迭代檔案涉及使用循環逐行讀取構造。然而,嘗試第二次迭代同一個檔案通常會產生意想不到的結果:沒有輸出。
此行為是由於 Python 中的底層檔案迭代機製造成的。當您執行第一個循環時:
for line in f.readlines(): print(line)
檔案將被讀取到末尾。這類似於從磁帶播放器讀取磁帶的末尾。一旦到達末尾,就不再有資料可讀取。
要再次迭代文件,必須將文件指標重置到開頭。這可以透過兩種方式實現:
1。使用 f.seek(0):
f.seek(0) for line in f.readlines(): print(line)
呼叫 f.seek(0) 將檔案指標重新定位到檔案的開頭,以便您再次讀取它。
2。關閉並重新開啟檔案:
f.close() f = open('baby1990.html', 'rU') for line in f.readlines(): print(line)
關閉並重新開啟檔案會自動將檔案指標重設為開頭。
替代方法:與Block 一起使用:
with 語句提供了更方便、更安全的使用方式files:
with open('baby1990.html', 'rU') as f: for line in f: print(line)
在with 區塊中,當區塊退出時,檔案將自動關閉,無論異常或循環如何。這消除了手動文件處理的需要。
以上是為什麼迭代 Python 檔案兩次會產生意外結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!