質問

BZ2ファイルに配置された約200,000個のテキストファイルがあります。私が抱えている問題は、BZ2ファイルをスキャンして必要なデータを抽出すると、非常に遅くなることです。 BZ2ファイル全体を調べて、探している単一のファイルを罰金する必要があります。とにかくこれをスピードアップすることはありますか?

また、Tar.bz2でファイルを整理する可能性があると考えたので、代わりにどこを見るべきかを知ることができます。とにかく、BZ2に入れられるファイルを整理するためにありますか?

詳細/編集:各テキストファイルの圧縮ファイルを照会する必要があります。このような多数のファイルをサポートし、徹底的に圧縮されるより良い圧縮方法はありますか?

役に立ちましたか?

解決

BZIP2を使用する必要がありますか?それを読んでいます ドキュメンテーション, 、ランダムアクセスをサポートするように設計されていないことは明らかです。おそらく、要件とより密接に一致する圧縮形式を使用する必要があります。古き良きZIP形式はランダムアクセスをサポートしますが、もちろん、さらに悪化する可能性があります。

他のヒント

BZIP2は大きなブロックで圧縮されます(デフォルトでは900キブ、私は信じています)。 Tarファイルのスキャンを劇的にスピードアップする1つの方法、 しかし 圧縮性能を低下させ、各ファイルを個別に圧縮し、結果を一緒にタールすることになります。これは基本的にZip-Formatファイルが何であるかです(ただし、BZIP2ではなくZLIB圧縮を使用しています)。ただし、Tar Indexを簡単につかむことができ、探している特定のファイルを解凍するだけです。

私は最も考えていません tar プログラムは、意味のある方法でファイルを整理する能力を提供しますが、特別なケースのためにこれを行うプログラムを作成することはできます(Pythonには1回または2回しか使用されていませんが、Pythonにはタールライティングライブラリがあります)。ただし、探しているものを見つける前に、ほとんどのデータを減圧しなければならないという問題があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top