pyzip是一个包,用于将内存中的zip内容作为字典处理。
pyzip的Python项目详细描述
pyzip是一个包,用于将zip内容作为字典进行管理。
这个压缩过程够简单吗?
>>>frompyzipimportPyZip>>>>>>pyzip=PyZip()>>>pyzip['key1']=b"content_bytes">>>pyzip['key2']=file_bytes>>>>>>pyzip.save("/path/to/file.zip")>>>zip_bytes=pyzip.to_bytes()# Alternatively, to bytes
它运行在模块zipfile之上,但是除了它的功能之外,pyzip还接受编辑和删除 拉链的元素。此外,它还提供完整性检查,以确保成功存储元素(sha256散列)。
安装
目前只支持python 3.4.1以后的版本:
sudo pip3 install pyzip
基本用法
pyzip可以轻松地将内容存储到一个动态的zip中。用法与普通词典相同:
- 将内容添加到内存中zip:
>>>frompyzipimportPyZip>>>>>>pyzip=PyZip()>>>pyzip['key1']=b"content_bytes"
- 获取特定内容:
>>>print(pyzip['key1'])b"content_bytes"
- 编辑内容:
>>>pyzip['key1']=b"replaced_content_bytes"
- 删除内容:
>>>delpyzip['key1']
- 获取zip字节:
>>>zip_bytes=pyzip.to_bytes()
- 从字节加载:
>>>pyzip=PyZip().from_bytes(zip_bytes)
- 保存到zip文件:
>>>pyzip.save("path/to/file.zip")
- 从zip文件加载:
>>>pyzip=PyZip().from_file("path/to/file.zip")
- 将现有字典转换为PyZip:
>>>pyzip=PyZip({'file1':b'example','file2':b'example2'})
- 也可以将多级dict转换为pyzip:
>>>pyzip=PyZip({'file1':b'example','file2':b'example2','folder1':{'file1':b'file1 in folder1'}})
用例
pyzip可以与PyFolder一起使用,以简化文件夹和zip的压缩和解压缩:
递归地将文件夹压缩到zip:
>>>frompyzipimportPyZip>>>frompyfolderimportPyFolder>>>>>>path_to_compress="route/to/files">>>>>>pyzip=PyZip(PyFolder(path_to_compress,interpret=False))>>>pyzip.save("compressed_folder.zip")>>>
从zip递归解压缩以前压缩的文件夹:
>>>frompyzipimportPyZip>>>frompyfolderimportPyFolder>>>>>>destination="route/for/uncompress">>>>>>pyzip=PyZip(PyFolder(destination,interpret=False)).from_file("compressed_folder.zip",inflate=False)>>>
许可证
它是根据麻省理工学院的许可证发行的。