python之linecache使用


Python linecache模塊緩存讀取大文件指定行

linecache模塊的作用是將文件內容讀取到內存中,進行緩存,而不是每次都要從硬盤中讀取,這樣效率提高很多,又省去了對硬盤IO控制器的頻繁操作。

linecache模塊目錄
  1. linecache模塊簡介
  2. linecache模塊函數講解
  3. linecache模塊源碼演示
  4. linecache模塊注意事項

一、linecache模塊簡介

我們看一下這個模塊的名字叫做linecache,行-緩存,這對於讀取內容非常多的文件,效果甚好,而且它還可以讀取指定的行內容。

二、linecache模塊函數講解

1 )、 linecache.getline(filename, lineno[, module_globals]) ,這個方法從filename也就是文件中讀取內容,得到第 lineno行,注意沒有去掉換行符,它將包含在行內。
2 )、 linecache.clearcache() ,清除現有的文件緩存。
3 )、 linecache.checkcache([filename]) ,參數是文件名,作用是檢查緩存內容的有效性,可能硬盤內容發生了變化,更新了,如果不提供參數,將檢查緩存中所有的項。

三 、linecache模塊源碼演示

# coding=utf-8

import os
import linecache

def get_content(path):
    '''讀取緩存中文件內容,以字符串形式返回'''
    if os.path.exists(path):
        content = ''
        cache_data = linecache.getlines(path)
        for line in range(len(cache_data)):
            content += cache_data[line]
        return content
    else:
        print('the path [{}] is not exist!'.format(path))

def main():
    path = 'c:\\test.txt'
    content = get_content(path)
    print(content)

if __name__ == '__main__':
    main()

四 、linecache模塊注意事項

linecache里面最常用到的就是getline方法,簡單實用可以直接從內容中讀到指定的行,日常編程中如果涉及讀取大文件,一定要使用首選linecache模塊,相比open()那種方法要快N倍,它是你讀取文件的效率之源。

轉自http://blog.csdn.net/sxingming/article/details/52183563


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM