「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > 行オフセットは大きなテキスト ファイルでの行ジャンプをどのように最適化できますか?

行オフセットは大きなテキスト ファイルでの行ジャンプをどのように最適化できますか?

2024 年 11 月 19 日に公開
ブラウズ:119

How Can Line Offsets Optimize Line Jumping in Large Text Files?

大きなテキスト ファイルでの行ジャンプの最適化

特定の行をシークするときに大量のテキスト ファイルを 1 行ずつ処理すると非効率になる可能性があります。提供されたコードは、必要な行がファイルのかなり前にある可能性があるという事実を無視して、15 MB ファイルのすべての行を反復して目的の行番号に到達します。

代替アプローチ

この問題に対処するには、ライン オフセットを利用する最適化手法の採用を検討してください。これには、ファイル全体を 1 回読み取り、各行の開始オフセットを含むリストを作成することが含まれます。

Implementation

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

Usage

特定の行 (n) にスキップするには、対応するオフセットにシークするだけです。

line_number = n
file.seek(line_offset[line_number])

このアプローチにより、すべての中間行を処理する必要がなくなり、大きなファイルのパフォーマンスが大幅に向上します。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3