13. 数据压缩和归档¶
13.1. zlib¶
zlib压缩使用gzip工具解压缩的。
13.2. gzip¶
gzip提供简单的即可去压缩和解压缩。
样例
# 读取压缩文件
import gzip
with gzip.open("/home/joe/file.txt.gz", "rb") as f:
file_content = f.read()
# 创建压缩文件
import gzip
content = b"Lots of content here"
with gzip.open("/home/joe/file.txt.gz", "wb") as f:
f.write(content)
# 压缩一个存储的文件
import gzip
import shutil
with open("/home/joe/file.txt", "rb") as f_in:
with gzip.open("/home/joe/file.txt.gz", "wb") as f_out:
shutil.copyfileobj(f_in, f_out)
# 压缩二进制字符串
import gzip
s_in = b"Lots of content here"
s_out = gzip.compress(s_in)
13.3. bz2¶
bz2提供简单的即可去压缩和解压缩。
用法和gzip基本一样。
13.4. lzma¶
lzma提供简单的即可去压缩和解压缩。(xz)
使用方法和gzip基本一样。
13.5. zipfile¶
zipfile提供zip归档
样例:
# 创建zip
with ZipFile("spam.zip", "w") as myzip:
myzip.write("eggs.txt")
# 查看zip中的特定文件
with ZipFile("spam.zip") as myzip:
with myzip.open("eggs.txt") as myfile:
print(myfile.read())
13.6. tarfile¶
tarfile提供打包归档
使用方法和zipfile基本一样。只是打开模式上,有写不同。
模式 |
描述 |
---|---|
r|* |
打开压缩流通用压缩 |
r| |
打开压缩 |
r|gz |
打开gzip流读取 |
r|bz2 |
打开bz2流读取 |
r|xz |
打开xz流读取 |
w| |
通用压缩写入 |
w|gz |
打开gzip流写入 |
w|bz2 |
打开bz2流写入 |
w|xz |
打开xz流写入 |