赞
踩
Python 提供了几乎为所有现有压缩文件的工具,下面逐一领略。
zlib
是一个 Python 库,能够实现 zip
、gzip
格式文件的压缩和解压缩。
bz2
模块提供了对 bzip2
格式的压缩支持。它也只对单个文件起作用,因此不能归档。
lzma
既是算法的名称,也是 Python 模块。它可以产生比一些旧方法更高的压缩比,并且是 xz
(更具体地说是 LZMA2 )背后的算法。
gzip
是大多数人都熟悉的应用,此外它也是一个 Python 模块的名称。此模块使用前面提到的 zlib
压缩算法,并充当类似于实用程序 gzip
和 gunzip
的接口。
shutils
是一个模块,我们通常不把该模块与压缩和解压缩联系在一起。但它提供了处理归档文件的实用方法,便于生成 tar
、 gztar
、 zip
、 bztar
或者 xztar
这些类型的归档文件。
顾名思义,zipfile
允许我们用 Python 中实现 zip 归档,提供了创建、读取、写入或追加 zip
文件所需的所有方法,还提供了便于操作这些文件的类和对象。
和上面的 zipfile
类似, tarfile
这个模块用于实现 tar
归档,可以读取和写入 gzip
、bz2
和 lzma
文件或归档文件。 也支持与常规的 tar
压缩软件能实现的其他功能。
上面列出了很多选择,它们中有一些比较基本,有一些具有许多其他功能,但共同点显然是包含压缩功能。下面就来看看有关基本操作。
先看 zlib
,这是一个相当低级的库,因此可能不太常用,让我们来看看针对整个文件的压缩或解压缩方法。
|
|
上面的代码中所需要的输入文件,可以用 head -c 1MB </dev/zero > data
指令生成,此文件由零组成且大小为 1MB 。将文件读入内存滞后,用 zlib
中的 compress
方法创建压缩数据。然后将该数据写入输出文件。
为了证明能够恢复数据——解压缩,再次打开上述生成的压缩文件并对其通过 zlib
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。