使用read()函數(shù)讀取文件時(shí),如果文件過(guò)大,則一次讀取全部?jī)?nèi)容到內(nèi)存,容易造成內(nèi)存不足,而相比每次限制讀取字符(或字節(jié))的個(gè)數(shù),更推薦大家使用逐行讀取文件的方式。
一般情況下,逐行讀取只適用于以文本格式打開(kāi)的文件,道理很簡(jiǎn)單,只有文本文件才有行的概念,二進(jìn)制文件沒(méi)有所謂行的概念。
文件對(duì)象提供了readline()和readlines()兩個(gè)函數(shù)來(lái)逐行讀取文件,其中readline()函數(shù)用于讀取一行內(nèi)容,而readlines()函數(shù)用于讀取文件內(nèi)的所有行。
readline()函數(shù)
readline()函數(shù)用于讀取文件中的一行,包含最后的換行符“\n”。此函數(shù)的基本語(yǔ)法格式為:
file.readline([size])
其中,file為打開(kāi)的文件對(duì)象;size為可選參數(shù),用于指定讀取每一行時(shí),一次最多讀取的字符數(shù)。
和read()函數(shù)一樣,此函數(shù)成功讀取文件數(shù)據(jù)的前提是,使用open()函數(shù)指定打開(kāi)文件的模式必須為r(只讀模式)或r+
(讀寫(xiě)模式)。
下面程序示范了使用readline()方法來(lái)讀取文件內(nèi)容:
#a.txt中有兩行內(nèi)容,分別是:
#千鋒
#https://www.duoceshi.com
f=open("a.txt",'r',True)
whileTrue:
#每次讀取一行
line=f.readline()
#如果沒(méi)有讀到數(shù)據(jù),跳出循環(huán)
ifnotline:break
#輸出line
print(line)
f.close()
輸出結(jié)果是
千鋒
https://www.duoceshi.com
以上內(nèi)容為大家介紹了python如何讀取文件的數(shù)據(jù),希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。