pythonファイルの最初の行と最後の行を読み込む

1795 ワード

pythonファイルの最後の行を読み込む2つの方法
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