21 讀取文件最後一行
阿新 • • 發佈:2018-06-26
IV 數據 開始 see 範圍 utf utf-8 文件指針 讀取文件
1,當讀取的文件不大時
#coding:utf-8 ‘‘‘ fname為所讀xx.txt文件 輸出為:文件第一行和最後一行 ‘‘‘ fname = ‘test.txt‘ with open(fname, ‘r‘) as f: #打開文件 lines = f.readlines() #讀取所有行 first_line = lines[0] #取第一行 last_line = lines[-1] #取最後一行 print(‘文件%s第一行為:‘ % first_line) print(‘文件%s最後一行為:‘% last_line)
2,當文件比較大時,readlines()會一次性讀取全部數據到內存,會浪費內存資源。
#coding:utf-8 ‘‘‘ f_name為所讀xx.txt文件 輸出為:文件最後一行 ‘‘‘ fname = ‘test.txt‘ with open(fname, ‘r‘) as f: #打開文件 first_line = f.readline() #讀第一行 off = -50 #設置偏移量 while True: f.seek(off, 2) #seek(off, 2)表示文件指針:從文件末尾(2)開始向前50個字符(-50) lines = f.readlines() #讀取文件指針範圍內所有行 iflen(lines)>=2: #判斷是否最後至少有兩行,這樣保證了最後一行是完整的 last_line = lines[-1] #取最後一行 break #如果off為50時得到的readlines只有一行內容,那麽不能保證最後一行是完整的 #所以off翻倍重新運行,直到readlines不止一行 off *= 2
print(‘文件%s第一行為:‘ % first_line)
print(‘文件%s最後一行為:‘% last_line)
21 讀取文件最後一行