讀取檔案的最後一行

2021-10-23 20:25:52 字數 1333 閱讀 7322

def

get_last_line_for_small_file

(fname)

:with

open

(fname,

'r', encoding=

'utf-8'

)as f:

# 開啟檔案

lines = f.readlines(

)# 讀取所有行

first_line = lines[0]

# 取第一行

last_line = lines[-1

]# 取最後一行

print

('檔案'

+ fname +

'第一行為:'

+ first_line)

print

('檔案'

+ fname +

'最後一行為:'

+ last_line)

defget_last_line_for_big_file

(fname)

:with

open

(fname,

'rb'

)as f:

# 開啟檔案

# 在文字檔案中,沒有使用b模式選項開啟的檔案,只允許從檔案頭開始,只能seek(offset,0)

# first_line = f.readline() # 取第一行

offset =-50

# 設定偏移量

while

true

:"""

file.seek(off, whence=0):從檔案中移動off個操作標記(檔案指標),正往結束方向移動,負往開始方向移動。

如果設定了whence引數,就以whence設定的起始位為準,0代表從頭開始,1代表當前位置,2代表檔案最末尾位置。

"""f.seek(offset,2)

# seek(offset, 2)表示檔案指標:從檔案末尾(2)開始向前50個字元(-50)

lines = f.readlines(

)# 讀取檔案指標範圍內所有行

iflen

(lines)

>=2:

# 判斷是否最後至少有兩行,這樣保證了最後一行是完整的

last_line = lines[-1

]# 取最後一行

break

# 如果off為50時得到的readlines只有一行內容,那麼不能保證最後一行是完整的

# 所以off翻倍重新執行,直到readlines不止一行

offset *=

2return last_line.decode(

)

python讀取檔案最後一行

處理檔案時,乙個常見的需求就是讀取檔案的最後一行。那麼這個需求用python怎麼實現呢?乙個樸素的想法如下 with open a.log r as fp lines fp.readlines last line lines 1 即使不考慮異常處理的問題,這個 也不完美,因為如果檔案很大,lines...

python讀取檔案最後一行

處理檔案時,乙個常見的需求就是讀取檔案的最後一行。那麼這個需求用python怎麼實現呢?乙個樸素的想法如下 with open a.log r as fp lines fp.readlines last line lines 1 即使不考慮異常處理的問題,這個 也不完美,因為如果檔案很大,lines...

C 正確讀取檔案最後一行

使用c ifstream來讀取檔案時,發現在讀到檔案結尾時會多讀一行。測試 如下,include include include intmain void std string oneline while inf.eof false return0 data.txt內容如下,輸出如下,多讀了一行,為...