大きなテキスト ファイルでの行ジャンプの最適化: 代替アプローチ
さまざまな長さの行を含む巨大なテキスト ファイルを処理する場合、多くの場合非効率的です。各行を順番に読み取って、特定の行番号に到達します。質問で提供されているコード サンプルはこのアプローチを示しており、ファイル全体の反復処理が潜在的に遅くなる可能性があります。ただし、計算されたオフセット リストを利用してライン ジャンプを最適化する代替方法があります。
オフセットベースのライン ジャンプ
この課題を克服するには、より効率的なアプローチが必要です。ファイルを 1 回読み取って、行オフセットのリストを作成する必要があります。各オフセットは、特定の行の開始位置をマークします。これらのオフセットを保存すると、前のオフセットを処理せずに、目的の行に直接ジャンプできます。
改善されたコード スニペットを次に示します。
<code class="python"># Read the file and build the line offset list line_offset = [] offset = 0 with open(filename, "rb", 0) as file: for line in file: line_offset.append(offset) offset += len(line) # Jump to a specific line (line 141978 in this example) file.seek(line_offset[141977]) # Adjust the index as lines are zero-indexed # Process the target line as desired DoSomethingWithThisLine(line)</code>
行オフセット リストを利用することで、スキップできます。ターゲットラインに直接送られるため、処理時間が大幅に短縮され、効率が向上します。
以上が大きなテキスト ファイル内の特定の行に効率的にジャンプするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。