大きなテキスト ファイル内の特定の行へのスキップ
大規模なテキスト ファイルを扱う場合、直接ジャンプする必要があることがよくあります。特定の行に。簡単なアプローチの 1 つは、ファイルを繰り返し読み取ることですが、ターゲットの行番号が事前にわかっている場合は非効率的になる可能性があります。
問題:
コード スニペットの使用提供:
startFromLine = 141978 urlsfile = open(filename, "rb", 0) linesCounter = 1 for line in urlsfile: if linesCounter > startFromLine: DoSomethingWithThisLine(line) linesCounter += 1
このコードはファイルを 1 行ずつ読み取り、無関係であっても先行するすべての行の処理を必要とします。
より効率的な解決策:
特定の行に効率的にジャンプするには、2 段階のアプローチを利用できます:
オフセット リストを構築します:
ターゲット行までシーク:
次に例を示します:
line_offset = [] offset = 0 for line in file: line_offset.append(offset) offset += len(line) file.seek(0) target_line = 141978 file.seek(line_offset[target_line])
このアプローチにより、目的の行に直接スキップし、無関係な行の処理による不必要なオーバーヘッドを回避できます。
以上が大きなテキスト ファイルの特定の行に効率的にスキップするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。