pythonファイルの最初の行と最後の行を読み込む
1795 ワード
pythonファイルの最後の行を読み込む2つの方法
1)一般的な方法:往路から順次読み取る
手順:openファイルを開きます.
ファイルを読み込み、ファイルのすべての行をメモリに読み込みます.
すべてのローを巡回し、指定したローのデータを抽出します.
長所:簡単、便利
短所:ファイルが大きいと時間が遅くて耐えられない
2)推奨方法:
手順:openログファイルを開きます.
ファイル読み込みポインタをファイルの最後に移動します.
ポインタを後ろから適当な位置まで移動します.
ファイルを読み込み、指定した行のデータを抽出します.
利点:時間が相対的に固定され、大きなファイルの処理に適している
コード実装
転載先:https://www.cnblogs.com/xiao-apple36/p/9219565.html
1)一般的な方法:往路から順次読み取る
手順:openファイルを開きます.
ファイルを読み込み、ファイルのすべての行をメモリに読み込みます.
すべてのローを巡回し、指定したローのデータを抽出します.
長所:簡単、便利
短所:ファイルが大きいと時間が遅くて耐えられない
2)推奨方法:
手順:openログファイルを開きます.
ファイル読み込みポインタをファイルの最後に移動します.
ポインタを後ろから適当な位置まで移動します.
ファイルを読み込み、指定した行のデータを抽出します.
利点:時間が相対的に固定され、大きなファイルの処理に適している
コード実装
fname = 'test.html'
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)
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() #
if len(lines) >= 2: # ,
last_line = lines[-1] #
break
# off 50 readlines ,
# off , readlines
offset *= 2
print(' ' + fname + ' :' + first_line.decode())
print(' ' + fname + ' :' + last_line.decode())
転載先:https://www.cnblogs.com/xiao-apple36/p/9219565.html