1. 程式人生 > >21 讀取文件最後一行

21 讀取文件最後一行

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() #讀取文件指針範圍內所有行
        if
len(lines)>=2: #判斷是否最後至少有兩行,這樣保證了最後一行是完整的 last_line = lines[-1] #取最後一行 break #如果off為50時得到的readlines只有一行內容,那麽不能保證最後一行是完整的 #所以off翻倍重新運行,直到readlines不止一行 off *= 2
    print(‘文件%s第一行為:‘ % first_line)
    print(‘文件%s最後一行為:‘% last_line)

21 讀取文件最後一行