這篇文章給大家分享的是有關(guān)用python解決按行讀取內(nèi)存不夠的問題的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。
成都創(chuàng)新互聯(lián)致力于成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計,成都網(wǎng)站設(shè)計,集團網(wǎng)站建設(shè)等服務(wù)標(biāo)準(zhǔn)化,推過標(biāo)準(zhǔn)化降低中小企業(yè)的建站的成本,并持續(xù)提升建站的定制化服務(wù)水平進行質(zhì)量交付,讓企業(yè)網(wǎng)站從市場競爭中脫穎而出。 選擇成都創(chuàng)新互聯(lián),就選擇了安全、穩(wěn)定、美觀的網(wǎng)站建設(shè)服務(wù)!
第一種:readline()
file = open("sample.txt") while 1: line = file.readline() if not line: break pass # do somethingfile.close()
一行行得從文件讀數(shù)據(jù),這樣是比較慢的,但是節(jié)約內(nèi)存;
測試讀10M的sample.txt文件,每秒大約讀32000行;
第二種:fileinput
import fileinput for line in fileinput.input("sample.txt"): pass
寫法稍微簡單,不過測試以后發(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ù)測試,它每秒可以讀96900行數(shù)據(jù)。效率是第一種方法的3倍,第二種方法的7倍。
第四種:文件迭代器
每次只讀取和顯示一行,讀取大文件時如下:
file = open("sample.txt") for line in file: pass # do something file.close()
感謝各位的閱讀!關(guān)于用python解決按行讀取內(nèi)存不夠的問題就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!