標籤:方便 基本使用 index upd check 其他 class 注意 就是
【linecache】
過往在讀取檔案的時候,我們通常使用的是這種模式:
with open(‘file.txt‘,‘r‘) as f: line = f.readline() while line: print line # 一些行層級的處理 line = f.readline()
這麼做的好處在於通過一行一行讀取內容,不會一下子把整個檔案內容讀到記憶體中去。
在長時間的實踐中可以發現,這種讀取檔案的代碼是一種相對比較固定的模式。既然是固定的模式,那麼肯定就有輪子了。事實上python內建了一個linecache模組,這個模組可以方便地實現對行的讀取,並且是按照上面的那種逐漸緩衝式的讀取。
■ 基本使用
linecache.getlines(filename) 指向一個檔案,擷取其所有行。返回的是一個列表,相當於是f.readlines()的返回,列表中每行內容也都是以\n結尾的。
linecache.getlilne(filename,lineno) 指定一行返回。注意這個是LineNo而不是index,也就是說getline(filename,1)返回的是第一行而不是第二行。返回的行包含分行符號,另外如果指定行不存在也不會報錯而是返回空行。
linecache.updatecache(filename) 當檔案內容發生改變時,如果需要獲得到最新的檔案內容,那麼需要調用這個方法。如果不調用,仍然使用在緩衝中的老檔案內容。類似的操作還可以是linecache.clearcache之後再getlines也行。
linecache.clearcache() 清除當前的所有緩衝
linecache.checkcache(filename) 檢查緩衝的有效性,如果檔案已經不存在,或者內容被改變,那麼老內容的緩衝會被清除。在很多其他類似的情境中這個方法似乎應該是自動被調用的,但是在linecache中這個方法是需要手動調用的。從某種意義上來說,這個方法相當於是updatecache和clearcache的智能結合。
【Python】 linecache模組讀取檔案