Python lzma模块

Python lzma模块

LZMA(Lempel–Ziv–Markov chain algorithm)是一种使用字典压缩方案的无损数据压缩算法,具有比其他压缩算法更高的压缩比。Python的lzma模块包括了使用LZMA算法进行数据压缩和解压缩的类和便利函数。

尽管这个模块的功能与bz2模块相似,但是与BZ2File类相比,LZMAFile类不是线程安全的。

在这里,lzma模块中的open()函数是打开lzma压缩文件对象的一种非常简单的方式。

open()函数

这个函数打开一个LZMA压缩的文件并返回一个文件对象。该函数需要两个主要参数——文件名和模式。模式参数默认为”rb”,但可取以下任一值:

二进制模式 - “r”, “rb”, “w”, “wb”, “x”, “xb”, “a” or “ab”

文本模式 - “rt”, “wt”, “xt” or “at”

compress()函数

这个函数使用LZMA算法压缩给定的数据,并返回一个字节对象。这个函数可选地有一个format参数,它决定容器格式。可能的值是FORMAT_XZ(默认值)和FORMAT_ALONE。

decompress()函数

这个函数解压缩数据并返回解压缩后的字节对象。

上述函数在以下示例中使用。要将LZMA压缩的数据写入文件:

import lzma
data=b"Welcome to TutorialsPoint"
f=lzma.open("test.xz","wb")
f.write(data)
f.close()

将在当前工作目录中创建一个“test.xz”文件。要从该文件中获取未压缩的数据,请使用以下代码:

import lzma
f=lzma.open("test.xz","rb")
data=f.read()
print (data)
b'Welcome to TutorialsPoint'

使用lzma模块的面向对象API执行压缩时,我们必须使用LZMAFile类。

LZMAFile()方法

这是LZMAFile类的构造函数。它需要指定文件和模式。带有’w’或’wb’模式的对象可通过它使用write()方法。

write()方法

此方法压缩给定的数据并将其写入其下方的文件中。

data=b'Welcome to TutorialsPoint'
obj=lzma.LZMAFile("test.xz", mode="wb")
obj.write(data)
obj.close()

通过使用mode=’rb’参数创建的LZMAFile对象的read()方法来读取压缩文件并检索解压缩数据。

read()函数

该方法从压缩文件中读取数据,并返回解压缩数据。

obj=lzma.LZMAFile("test.xz", mode="rb")
data=obj.read()
data
b'Welcome to TutorialsPoint'

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程