Python模組----linecache,----linecache

來源:互聯網
上載者:User

Python模組----linecache,----linecache

Python標準庫提供了一個有趣的模組:linecache模組。該模組用來從檔案中讀取任何的行,並且將這些lines使用緩衝進行最佳化,常見的情況是從個大檔案中讀取指定的行。不過由於此模組使用記憶體進行快取檔案內容,所以要謹慎使用。在Python中,經常與traceback模組結合使用。

linecache模組提供了幾個函數(下面函數參數module_globals只有在2.5版本以後才有):

linecache.getlines(filename[,module_globals])

從名為filename的檔案中得到全部內容,輸出為列表,檔案中的每一行為列表中的一個元素

linecache.getline(filename,lineno[,module_globals])

從名為filename的檔案中獲得指定的行。此函數不會拋出異常,在出錯的時候返回一個Null 字元串‘’。如果filename不存在,先在module_globasl的__loader__中尋找,然後會從sys.path中繼續尋找

linecache.clearcache()

如果不需要此前從getline中緩衝的資料,清除緩衝。

linecache.checkcache([filename])

檢查緩衝的有效性。因為緩衝所對應的檔案可能在磁碟上發生了改變,如果需要新的資料,使用此函數可以得到新的版本。如果省略filename,則會檢查緩衝中所有條目。

Example:

建立一個檔案E:\\test.txt

 

linecache.getline會把分行符號也包含進來。

注意:

1)、讀取檔案之後,不需要使用檔案的緩衝時,需要在最後清理一下緩衝,使linecache.clearcache()清理緩衝,釋放緩衝

2)、此模組使用記憶體來快取檔案內容,所以需要耗費記憶體,開啟檔案的大小和開啟速度和你的記憶體大小有關係

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.