【Python】 linecache模組讀取檔案

來源:互聯網
上載者:User

標籤:方便   基本使用   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模組讀取檔案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.