Python可以讀取任何格式的文本數(shù)據(jù),任何文件都需要在讀取或?qū)懭胫岸际切枰蜷_的。使用Python打開文件的方法一般使用open()方法,并使用文件對(duì)象進(jìn)行讀寫。使用open()方法的參數(shù)來說明打開文件的目的是,可以使用不同類型的文件都可以進(jìn)入訪問模式。同時(shí)用close()方法完成文件操作后釋放文件占用的資源。一般情況下Python編程可以處理兩種類型的文件,它們是文本文件和二進(jìn)制文件。那么python如何逐行讀取數(shù)據(jù)?python不逐行讀怎么辦?
python如何逐行讀取數(shù)據(jù)?
在實(shí)際開發(fā)的過程中,文件讀寫也很重要,下面說一下python如何逐行讀取文件。
如果程序要讀取行,通常只能用文本方式來讀取,道理很簡(jiǎn)單,只有文本文件才有行的概念,二進(jìn)制文件沒有所謂行的概念。
文件對(duì)象提供了如下兩個(gè)方法來讀取行:
readline([n]):讀取一行內(nèi)容。如果指定了參數(shù) n,則只讀取此行內(nèi)的 n 個(gè)字符。
readlines():讀取文件內(nèi)所有行。
下面程序示范了使用 readline() 方法來讀取文件內(nèi)容:
import codecs
# 指定使用utf-8字符集讀取文件內(nèi)容
f = codecs.open("readline_test.py", 'r', 'utf-8', buffering=True)
while True:
# 每次讀取一行
line = f.readline()
# 如果沒有讀到數(shù)據(jù),跳出循環(huán)
if not line: break
# 輸出line
print(line, end='')
f.close()
接下來程序使用 readline() 方法逐行進(jìn)行讀取,當(dāng)讀取到結(jié)尾時(shí),該方法將會(huì)返回空,程序就會(huì)退出循環(huán)。
程序也可以使用 readlines() 方法一次讀取文件內(nèi)所有行。例如如下程序:
import codecs
# 指定使用utf-8字符集讀取文件內(nèi)容
f = codecs.open("readlines_test.py", 'r', 'utf-8', buffering=True)
# 使用readlines()讀取所有行,返回所有行組成的列表
for 1 in f.readlines():
print(1, end='')
f.close()
python不逐行讀怎么辦?
在使用read()方法讀取文件時(shí),如果文件很大,一次讀取全部?jī)?nèi)容到內(nèi)存,容易造成內(nèi)存不足,所以通常會(huì)采用逐行讀取。文件對(duì)象提供了readline()方法用于每次讀取一行數(shù)據(jù)。readline()方法的基本語法格式如下:
readlines()函數(shù)
readlines() 函數(shù)用于讀取文件中的所有行,它和調(diào)用不指定 size 參數(shù)的 read() 函數(shù)類似,只不過該函數(shù)返回是一個(gè)字符串列表,其中每
個(gè)元素為文件中的一行內(nèi)容。
和 readline() 函數(shù)一樣,readlines() 函數(shù)在讀取每一行時(shí),會(huì)連同行尾的換行符一塊讀取。
readlines() 函數(shù)的基本語法格式如下:
file.readlines()
其中,file 為打開的文件對(duì)象。和 read()、readline() 函數(shù)一樣,它要求打開文件的模式使用 r(只讀)或者 r+(讀寫)。
以上就是關(guān)于python如何逐行讀取數(shù)據(jù),以及python不逐行讀怎么辦的全部?jī)?nèi)容,想了解更多關(guān)于python的信息,請(qǐng)繼續(xù)關(guān)注中培偉業(yè)。