Python zipfile 模块压缩与解压缩通常是对物理磁盘文件进行操作,比如参照官方的例子,生成压缩文件的代码是
with zipfile.ZipFile('spam.zip', 'w') as myzip:
myzip.write('eggs.txt')
myzip.write('beef.txt')
这样就生成了一个包含两个文件的压缩包 spam.zip, 相当于命令 zip spam.zip egges.txt beef.txt
的效果。用 unzip -l spam.zip
命令就能看到其中的两个文件。相应的解压缩的代码如下
with zipfile.ZipFile('spam.zip', 'r') as myzip:
print(myzip.filelist()) # 可获得压缩包中的文件列表信息
myzip.extractall()
同样是把压缩包 spam.zip 解压缩文件到当前目录中,相当于命令 unzip spam.zip
的效果。
前面顺便也是熟悉一下 zipfile 模块的常见用法,但有时候我们可能从数据库中,从网络上收到的是字节数据,希望直接处理字节的压缩解压缩,而不借助于中间的磁盘文件,因为通过磁盘文件来处理必须进行善后处理以及可能的资源的竞争,在内存宽裕的情况下效率也是个问题。 阅读全文 >>