大きなテキスト ファイルでの行ジャンプの最適化
特定の行をシークするときに大規模なテキスト ファイルを 1 行ずつ処理するのは非効率的になる可能性があります。提供されたコードは、必要な行がファイルのかなり前にある可能性があるという事実を無視して、15 MB ファイルのすべての行を反復して目的の行番号に到達します。
代替アプローチ
この問題に対処するには、ライン オフセットを利用する最適化手法の採用を検討してください。これには、ファイル全体を 1 回読み取り、各行の開始オフセットを含むリストを作成することが含まれます。
実装
<code class="python">line_offset = [] # List to store line offsets offset = 0 # Current offset # Loop through each line in the file for line in file: line_offset.append(offset) # Store the current line offset offset += len(line) # Update the offset for the next line file.seek(0) # Reset the file pointer to the beginning</code>
使用法
特定の行 (n) にスキップするには、対応するオフセットをシークするだけです。
<code class="python">line_number = n file.seek(line_offset[line_number])</code>
このアプローチにより、すべての中間行を処理する必要がなくなり、大きなファイルのパフォーマンスが大幅に向上します。
以上が行オフセットは大きなテキスト ファイルでの行ジャンプをどのように最適化できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。