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