重複の可能性:
Python でファイルの最後の n 行を取得する、tail と同様に Python
を使用してファイルを逆順に読み取る
サイズが約 15GB のファイルがあります。これは、出力を分析することになっているログ ファイルです。私はすでに、数行のロギングで、同様の非常に小さいファイルの基本的な解析を行いました。文字列の解析は問題ではありません。問題は、巨大なファイルとそれに含まれる冗長データの量です。
基本的に、私は言うことができるpythonスクリプトを作成しようとしています。たとえば、ファイルの最後の 5000 行を教えてください。これも引数の基本的な処理であり、特別なことは何もありません。私はそれを行うことができます。
しかし、ファイルの最後から指定した行数だけを読み取るようにファイルリーダーを定義または指示するにはどうすればよいですか? 私はそれらに興味がないので、ファイルの先頭にある膨大な量の行をスキップしようとしています。正直に言うと、txtファイルから約15GBの行を読み取るには時間がかかりすぎます。ファイルの最後から読み取りを開始する方法はありますか? それは意味がありますか?
要するに、15 GB のファイルを 1 行ずつ読み取るには時間がかかりすぎるという問題です。したがって、最初はすでに冗長なデータ (少なくとも私にとっては冗長) をスキップし、読み取りたいファイルの終わりから行数だけを読み取りたいと考えています。
明白な答えは、手動でファイルから別のファイルにN行分をコピーすることですが、Pythonでファイルの最後からN行分を読み取るためだけにこれを半自動魔法で行う方法はありますか?