這篇文章給大家分享的是有關(guān)用python解決按行讀取內(nèi)存不夠的問(wèn)題的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧。
成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比武勝網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式武勝網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋武勝地區(qū)。費(fèi)用合理售后完善,十載實(shí)體公司更值得信賴。第一種: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ò),可以把它分享出去讓更多的人看到吧!