python中的文件,通常是用read()方法來(lái)讀取。
如果程序要讀取行,通常只能用文本方式來(lái)讀取,道理很簡(jiǎn)單,只有文本文件才有行的概念,二進(jìn)制文件沒(méi)有所謂行的概念。
文件對(duì)象提供了如下兩個(gè)方法來(lái)讀取行:
readline([n]):讀取一行內(nèi)容。如果指定了參數(shù)n,則只讀取此行內(nèi)的n個(gè)字符。
readlines():讀取文件內(nèi)所有行。
下面程序示范了使用readline()方法來(lái)讀取文件內(nèi)容:
importcodecs
#指定使用utf-8字符集讀取文件內(nèi)容
f=codecs.open("readline_test.py",'r','utf-8',buffering=True)
whileTrue:
#每次讀取一行
line=f.readline()
#如果沒(méi)有讀到數(shù)據(jù),跳出循環(huán)
ifnotline:break
#輸出line
print(line,end='')
f.close()
上面程序使用UTF-8字符集打開(kāi)readline_test.py文件,這是由于該P(yáng)ython源文件是采用UTF-8字符集保存的,因此,如果直接用普通的open()函數(shù)打開(kāi)文件,則會(huì)引發(fā)UnicodeDecodeError異常。
接下來(lái)程序使用readline()方法逐行進(jìn)行讀取,當(dāng)讀取到結(jié)尾時(shí),該方法將會(huì)返回空,程序就會(huì)退出循環(huán)。
程序也可以使用readlines()方法一次讀取文件內(nèi)所有行。例如如下程序:
importcodecs
#指定使用utf-8字符集讀取文件內(nèi)容
f=codecs.open("readlines_test.py",'r','utf-8',buffering=True)
#使用readlines()讀取所有行,返回所有行組成的列表
for1inf.readlines():
print(1,end='')
f.close()
以上內(nèi)容為大家介紹了python培訓(xùn)之怎么提取txt中的幾行,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。