Python
 Computer >> コンピューター >  >> プログラミング >> Python

bzip2圧縮のPythonサポート(bz2)


bzip2は、ファイルの圧縮と解凍のためのオープンソースアルゴリズムです。 Pythonのbz2モジュールは、プログラムでbzip2アルゴリズムを実装する機能を提供します。

open()関数は、このモジュールへの主要なインターフェイスです。

Open()

この関数はbzip2圧縮ファイルを開き、ファイルオブジェクトを返します。ファイルは、読み取り/書き込み権限でバイナリ/テキストモードとして開くことができます。この関数は、1から9までのcompressionlevel引数に基づいて圧縮を実行します。

write()

ファイルを「w」または「wb」モードで開くと、この関数はファイルオブジェクトで使用できます。バイナリモードでは、圧縮されたバイナリデータをファイルに書き込みます。通常のテキストモードでは、ファイルオブジェクトはTetIOWrapperオブジェクトでラップされ、エンコードが実行されます。

read() −読み取りモードで開くと、この関数はそれを読み取り、非圧縮データを返します。

次のコードは、圧縮されたデータをbzip2ファイルに書き込みます。

>>> f = bz2.open("test.bz2", "wb")
>>> data = b'Welcome to TutorialsPoint'
>>> f.write(data)
>>> f.close()

これにより、現在のディレクトリにtest.bz2ファイルが作成されます。解凍ツールには、「テスト」ファイルが表示されます。このtest.bz2ファイルから非圧縮データを読み取るには、次のコードを使用します。

>>> f = bz2.open("test.bz2", "rb")
>>> data=f.read()
>>> data
b'Welcome to TutorialsPoint'

bz2モジュールはBZ2Fileクラスも定義します。そのオブジェクトは、コンストラクターのモードパラメーターに応じてコンプレッサーおよびデコンプレッサーとして機能します。

BZ2File()

これはコンストラクターです。 open()関数と同様に、ファイルとモードのパラメーターが必要です。デフォルトの圧縮レベルは9で、1から9の間です。

BZ2Compressor()

この関数は、インクリメンタルコンプレッサークラスのオブジェクトを返します。このクラスのcompress()メソッドを呼び出すたびに、圧縮データのチャンクが返されます。複数のチャンクを連結して、最終的にbzip2圧縮ファイルに書き込むことができます。

flush()

このメソッドはバッファを空にし、圧縮されたオブジェクトに追加するためにバッファ内のデータのチャンクを返します。

BZ2Decompressor()

この関数は、インクリメンタルデコンプレッサのオブジェクトを返します。圧縮解除されたデータの個々のチンクが、フラッディングされたデータと連結されて、圧縮されていないデータを形成します。

次の例では、最初にリストオブジェクト内の各iemを圧縮し、連結されたバイトオブジェクトをファイルに書き込みます。データはBZ2Decompressorオブジェクトによって取得されます。

>>> data = [b'Hello World', b'How are you?', b'welcome to Python']
>>> obj = bz2.BZ2Compressor()
>>> f = bz2.open("test.bz2", "wb")
>>> d1 = obj.compress(data[0])
>>> d2 = obj.compress(data[1])
>>> d3 = obj.compress(data[2])
>>> d4 = obj.flush()
>>> d1,d2,d3,d4
(b'', b'', b'', b'BZh91AY&SYS\x9a~\x99\x00\x00\x03\x1f\x80@\x00\x00\x00\x80@@\x80.G\x96\xa0 \x00!\xa8\xd0\x06\x9a6\x90\xa6LL\x83#\x18\x1d\x83\xee^]\x1e|\xa9\xddgu\x15G/\x1a\x8c\xd1\x90\x14\x8f\x8b\xb9"\x9c(H)\xcd?L\x80')
>>> compressedobj=d1+d2+d3+d4
>>> f.write(compressedobj)
>>> f.close()
>>> obj=bz2.BZ2DeCompressor()
>>> f=bz2.open("test.bz2", "rb")
>>> data=f.read()
>>> obj.decompress(data)
b'Hello WorldHow are you?welcome to Python'

  1. PC用のトップ6ファイル転送アプリ

    あるシステムから別のシステムまたはスマートフォンにデータを転送するために、多くの不要な手間をかけなければならなかった時代は終わりました。今日では、PCからスマートフォンまたは別のPCにデータを転送するために使用できる非常に多くのすぐに利用できるアプリケーションがあります。したがって、PCに最適なファイル転送アプリを選択するのに役立ちます 、さまざまな方法で要件を満たすために使用できる6つの理想的なソリューションを厳選しました。 パート1:PCからモバイルへの転送に最適なファイル転送アプリ システムからスマートフォンに(またはその逆に)データを転送したいだけの場合は、MobileTr

  2. Windows用の15の最高のファイル圧縮ツール

    スマートフォンをリセットすると、すべてのデータが失われたとします。しかし、あなたは賢明で、リセットする前にコンピューターにバックアップを作成しました。しかし今、問題はバックアップのサイズであり、単純なファイルの移動には大きすぎます。さて、あなたの問題の解決策は簡単です。はい、ファイル圧縮です!必要なのは、バックアップ データを管理可能なサイズに圧縮する Windows 用の最適なファイル圧縮ソフトウェアだけです。インターネット上には、評判の良い無料のファイル圧縮ソフトウェアが数多くあります。どちらを選択するかについて混乱を招く可能性があります。そのため、利用可能な最高のファイル圧縮ツールのリス