這篇文章給大家分享的是有關(guān)用python解決按行讀取內(nèi)存不夠的問(wèn)題的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧。
第一種:readline()
file = open("sample.txt") while 1: line = file.readline() if not line: break pass # do somethingfile.close()
一行行得從文件讀數(shù)據(jù),這樣是比較慢的,但是節(jié)約內(nèi)存;
測(cè)試讀10M的sample.txt文件,每秒大約讀32000行;
第二種:fileinput
import fileinput for line in fileinput.input("sample.txt"): pass
寫法稍微簡(jiǎn)單,不過(guò)測(cè)試以后發(fā)現(xiàn)每秒只能讀13000行數(shù)據(jù),效率上比上一種方法慢了兩倍多;
第三種:readlines()
file = open("sample.txt") while 1: lines = file.readlines(100000) if not lines: break for line in lines: pass # do something file.close()
用同樣的數(shù)據(jù)測(cè)試,它每秒可以讀96900行數(shù)據(jù)。效率是第一種方法的3倍,第二種方法的7倍。
第四種:文件迭代器
每次只讀取和顯示一行,讀取大文件時(shí)如下:
file = open("sample.txt") for line in file: pass # do something file.close()
感謝各位的閱讀!關(guān)于用python解決按行讀取內(nèi)存不夠的問(wèn)題就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!