python zlib 压缩与解压

例子1:压缩与解压字符串

import zlib
message = ‘abcd1234‘
compressed = zlib.compress(message)
decompressed = zlib.decompress(compressed)

print ‘original:‘, repr(message)
print ‘compressed:‘, repr(compressed)
print ‘decompressed:‘, repr(decompressed)

结果

original: ‘abcd1234‘
compressed: ‘x\x9cKLJN1426\x01\x00\x0b\xf8\x02U‘
decompressed: ‘abcd1234‘

例子2:压缩与解压文件

import zlib
def compress(infile, dst, level=9):
    infile = open(infile, ‘rb‘)
    dst = open(dst, ‘wb‘)
    compress = zlib.compressobj(level)
    data = infile.read(1024)
    while data:
        dst.write(compress.compress(data))
        data = infile.read(1024)
    dst.write(compress.flush())

def decompress(infile, dst):
    infile = open(infile, ‘rb‘)
    dst = open(dst, ‘wb‘)
    decompress = zlib.decompressobj()
    data = infile.read(1024)
    while data:
        dst.write(decompress.decompress(data))
        data = infile.read(1024)
    dst.write(decompress.flush())

if __name__ == "__main__":
    compress(‘in.txt‘, ‘out.txt‘)
    decompress(‘out.txt‘, ‘out_decompress.txt‘)

结果

生成文件

out_decompress.txt  out.txt

问题——处理对象过大异常

>>> import zlib
>>> a = ‘123‘
>>> b = zlib.compress(a)
>>> b
‘x\x9c342\x06\x00\x01-\x00\x97‘
>>> a = ‘a‘ * 1024 * 1024 * 1024 * 10
>>> b = zlib.compress(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OverflowError: size does not fit in an int
时间: 2024-10-12 11:36:18

python zlib 压缩与解压的相关文章

python实现压缩及解压

一.zipfile实现压缩及解压: 1.Python--zipfile压缩ZIP文件: import zipfile f = zipfile.ZipFile(target, 'w', zipfile.ZIP_DEFLATED) f.write(filename, file_url) f.close() 其中target:是压缩后要保存的路径,可以是: 'C:\\temp\\' 或'./test' ZIP_DEFLATED:表示压缩, ZIP_STORE:表示只打包,不压缩.(这个Linux中的g

Python Gzip压缩与解压模块

from  http://www.iplaypython.com/module/gzip.html 一.使用gzip模块压缩文件 >>> import gzip #导入gzip模块,玩蛇网提示:注意名字为全小写 >>> g = gzip.GzipFile(filename="", mode="wb", compresslevel=9, fileobj=open('sitemap.log.gz', 'wb')) >>&g

python学习笔记-Day7(configparser模块、shutil、压缩与解压模块、subprocess)

configparser模块 # configparser用于处理特定格式的文件,其本质上是利用open来操作文件 # 下边我们就创建这种特定格式配置文件,来操作以下这里模块方法 --------------test.conf---------------- [section1] # configparser 会认定以中括号括住的为一个节点(node) k1 = 111 # 节点下,每一行配置文件为键值对存在(也可以写成 k2:123) k2 = v2 k3 = 123 k4 = True k1

Java实现文件压缩与解压[zip格式,gzip格式]

Java实现ZIP的解压与压缩功能基本都是使用了Java的多肽和递归技术,可以对单个文件和任意级联文件夹进行压缩和解压,对于一些初学者来说是个很不错的实例. zip扮演着归档和压缩两个角色:gzip并不将文件归档,仅只是对单个文件进行压缩,所以,在UNIX平台上,命令tar通常用来创建一个档案文件,然后命令gzip来将档案文件压缩. Java I/O类库还收录了一些能读写压缩格式流的类.要想提供压缩功能,只要把它们包在已有的I/O类的外面就行了.这些类不是Reader和Writer,而是Inpu

【转】iOS开发之压缩与解压文件

ziparchive是基于开源代码”MiniZip”的zip压缩与解压的Objective-C 的Class,使用起来非常的简单方法:从http://code.google.com/p/ziparchive/ 上下载ZipArchive.zip,解压后将代码加入工程中,并且把zlib库添加到工程中使用方法:1. 压缩:ZipArchive可以压缩多个文件,只需要把文件一一addFileToZip即可. ZipArchive* zip = [[ZipArchive alloc] init]; NS

iOS开发之压缩与解压文件

ziparchive是基于开源代码”MiniZip”的zip压缩与解压的Objective-C 的Class,使用起来非常的简单 方法:从http://code.google.com/p/ziparchive/ 上下载ZipArchive.zip,解压后将代码加入工程中,并且把zlib库添加到工程中 使用方法: 1. 压缩:ZipArchive可以压缩多个文件,只需要把文件一一addFileToZip即可. ZipArchive* zip = [[ZipArchive alloc] init];

模块讲解----shutil模块(copy、压缩、解压)

作用与功能 主要用于文件的copy,压缩,解压 导入shuitl模块: import shutil copy方法 1 1.shutil.copyfileobj()  打开file1,并copy写入file2: 2 with open("笔记1",'r',encoding='utf-8') as f1,open('笔记2','w',encoding='utf-8') as f2: 3    shutil.copyfileobj(f1,f2) 4 5 6 7 #输入文件名就能直接拷贝(调用

linux中常用的压缩、解压命令详解

不管在windows中还是在linux中,我们会经常看到各种压缩的文件,此刻我们需要使用就得解压,在这就介绍介绍linux中解压.压缩的命令. 在做实验之前,我们先创建几个文件,大小都是100M,方便我们更能清晰理解. 一.compress[选项]file(不是太常用,而且tab键还不能补齐) ①compress file 压缩文件,其中我们可以看到compress压缩的文件是.Z结尾的压缩包. ② -d file 解压文件,但压缩文件会丢失,相当于uncompress 在这我们可以看到,不管是

iOS开发中的压缩以及解压

事实上,在iOS开发中,压缩与解压,我都是采用第三方框架SSZipArchive实现的 gitHub地址:   https://github.com/ZipArchive/ZipArchive 上面有详细的使用方法 因为ZipArchive不支持ARC,所以如果你的工程开启了ARC,那么就需要对ZipArchive设置一下.在ZipArchive.mm编译选项中,增加-fno-objc-arc即可. 最后,需要为工程链接libz.dylib动态链接库. 使用示范(压缩): // 获得mainBu