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

大きなテキスト ファイル内の特定の行に効率的にジャンプするにはどうすればよいですか?

2024 年 11 月 6 日に公開
ブラウズ:218

How can I efficiently jump to a specific line in a large text file?

大きなテキスト ファイルでの行ジャンプの最適化: 別のアプローチ

さまざまな長さの行を含む巨大なテキスト ファイルを処理する場合、多くの場合、非効率的になります。各行を順番に読み取って、特定の行番号に到達します。質問で提供されているコード サンプルはこのアプローチを示しており、ファイル全体の反復処理が潜在的に遅くなる可能性があります。ただし、計算されたオフセット リストを利用してライン ジャンプを最適化する代替方法があります。

オフセットベースのライン ジャンプ

この課題を克服するには、より効率的なアプローチが必要です。ファイルを 1 回読み取って、行オフセットのリストを作成する必要があります。各オフセットは、特定の行の開始位置をマークします。これらのオフセットを保存すると、前のオフセットを処理せずに、目的の行に直接ジャンプできます。

改善されたコード スニペットは次のとおりです:

# 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)

ラインオフセットリストを活用することで、目的の行に直接スキップすることができ、処理時間を大幅に短縮し、効率を向上させます。

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

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

Copyright© 2022 湘ICP备2022001581号-3