ログファイルに行があり、時系列で追加されています。たとえば、30日前から30日前、29日前、28日前などのデータが過去30日間のデータである可能性があります。ログファイルから行をすばやく見つけ、後方に検索し、行ごとに読み取る
通常の順番でファイルを読みたいと思いますが、 (例:7日前から7日前、次に6日前、5日前など)
1つの方法はファイルを普通に読むことですが、スピードの理由から、 To: - に開始するように後方に、指数関数的に、右のポイントを見つけるために、ファイルの末尾から求めて - そして、私はラインを一つずつ読んで、で開始する権利ポイントを見つけたら、前方の順に
これを動作させるのに問題があります。私はここで答えを変更し始めました: Most efficient way to search the last x lines of a file in python
誰かがこれを行うためのより良い方法について助けてくれるのでしょうか?
ログファイルを複数のファイルに分割することを検討します実行可能な最初から求めている。 –
(オプションを持っている場合つまり、)私はあなたの計画は、その時点から*全体*ファイルを読むために、その後であることを考えると、*指数関数*後方読んで多くのポイントがないと思います。逆に指数関数的に読んだり、バイナリ検索をしたりすると、O(log N)時間に最初に必要な行を見つけるのに役立ちますが、O(N)その時点から線を読む時間。 – ruakh