大きなテキスト ファイルの特定の行への効率的なジャンプ
行の長さが不明な大量のテキスト ファイルを処理する場合、問題なく特定の行にジャンプします。ファイル全体を反復処理すると、効率が大幅に向上します。質問で強調されている一般的なアプローチは反復的ですが、最適な解決策ではありません。
よりエレガントで効率的な代替方法には、前処理パスの各行の開始バイト オフセットを特定することが含まれます。これは、次のようにオフセットのリストを構築することで実現できます:
<code class="python">line_offset = [] offset = 0 for line in file: line_offset.append(offset) offset += len(line)</code>
この前処理されたリストが構築されると、特定の行にジャンプするのは簡単になります:
<code class="python">file.seek(line_offset[n])</code>
ここで、n は目的の行のインデックス (最初の行は行 0)。この手法により、ファイル全体をスキャンせずに任意の行に直接移動できるため、大規模なデータセットの処理時間を大幅に短縮できます。
以上が大きなテキスト ファイルの特定の行に効率的にジャンプするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。