Python中read()、readline()和readlines()三者間的區別和用法

NO IMAGE

前言

眾所周知在python中讀取檔案常用的三種方法:read(),readline(),readlines(),今天看專案是又忘記他們的區別了。以前看書的時候覺得這東西很簡單,一眼掃過,待到用時卻也只知道有這麼幾個方法,不懂得它的原理與用法。也許吧,沒有永遠的記憶,況且根本沒有用心去記它。話不多說,來一起看看詳細的介紹:

準備

假設a.txt的內容如下所示:


Hello
Welcome
What is the fuck...

一、read([size])方法

read([size])方法從檔案當前位置起讀取size個位元組,若無引數size,則表示讀取至檔案結束為止,它範圍為字串物件


f = open("a.txt")
lines = f.read()
print lines
print(type(lines))
f.close()

輸出結果:


Hello
Welcome
What is the fuck...
<type 'str'> #字串型別

二、readline()方法

從字面意思可以看出,該方法每次讀出一行內容,所以,讀取時佔用記憶體小,比較適合大檔案,該方法返回一個字串物件。


f = open("a.txt")
line = f.readline()
print(type(line))
while line:
print line,
line = f.readline()
f.close()

輸出結果:


<type 'str'>
Hello
Welcome
What is the fuck...

三、readlines()方法讀取整個檔案所有行,儲存在一個列表(list)變數中,每行作為一個元素,但讀取大檔案會比較佔記憶體。


f = open("a.txt")
lines = f.readlines()
print(type(lines))
for line in lines:
print line,
f.close()

輸出結果:


<type 'list'>
Hello
Welcome
What is the fuck...

四、linecache模組

當然,有特殊需求還可以用linecache模組,比如你要輸出某個檔案的第n行:


# 輸出第2行
text = linecache.getline(‘a.txt',2)
print text,

對於大檔案效率還可以。

下面是其他網友的補充


"""
1、讀取檔案的三個方法:read()、readline()、readlines()
2、三個方法均可接受一個變數用以限制每次讀取的資料量,通常不使用該變數。
"""
"""
關於read()方法:
1、讀取整個檔案,將檔案內容放到一個字串變數中
2、如果檔案大於可用記憶體,不可能使用這種處理
"""
file_object = open("test.py",'r') #建立一個檔案物件,也是一個可迭代物件
try:
all_the_text = file_object.read() #結果為str型別
print type(all_the_text)
print "all_the_text=",all_the_text
finally:
file_object.close()
"""
關於readline()方法:
1、readline()每次讀取一行,比readlines()慢得多
2、readline()返回的是一個字串物件,儲存當前行的內容
"""
file_object1 = open("test.py",'r')
try:
while True:
line = file_object1.readline()
if line:
print "line=",line
else:
break
finally:
file_object1.close()
"""
關於readlines()方法:
1、一次性讀取整個檔案。
2、自動將檔案內容分析成一個行的列表。
"""
file_object2 = open("test.py",'r')
try:
lines = file_object2.readlines()
print "type(lines)=",type(lines) #type(lines)= <type 'list'>
for line in lines:
print "line=",line 
finally:
file_object2.close()

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對指令碼之家的支援

您可能感興趣的文章:

Python File readlines() 使用方法詳談python read readline readlines的區別python: line=f.readlines()消除line中\n的方法