使用Python的zipfile API提取Deflate64 ZIP存档。
项目描述
zipfile-deflate64
使用Python的zipfile
API提取Deflate64 ZIP存档。
安装
pip install zipfile-deflate64
支持Python 3.6、3.7、3.8、3.9和3.10,并在PyPI上发布了manylinux2014、macOS和Windows轮
用法
Python代码库中的任何位置
import zipfile_deflate64 # This has the side effect of patching the zipfile module to support Deflate64
或者,zipfile_deflate64
重新导出zipfile
API,以便于使用
import zipfile_deflate64 as zipfile
zipfile.ZipFile(...)
...
设计原理
问题
微软Windows资源管理器最近版本在创建大于2GB的ZIP文件时使用Deflate64压缩(请参阅链接)。由于Windows的普及和“发送到压缩文件夹”的易用性,新创建的大多数ZIP文件都使用Deflate64压缩。
然而,在开源生态系统中对Deflate64的支持非常薄弱!大多数ZIP库都拒绝实现Deflate64,理由是其专有性质。
在.NET生态系统中,ZipArchive
API仅支持解压缩。在Java中,Apache Commons Compress API支持压缩和解压缩。
7-Zip项目可能提供了对压缩和解压缩Deflate64的最佳通用支持,但存在一些阻碍通用可用性的障碍
- 7-Zip本身是一个仅适用于Windows的GUI应用程序
- 7-Zip仍在发布新版本,但拒绝实现某些新的压缩格式,因此mcmilk/7-Zip-zstd分支值得关注。
- p7zip,POSIX兼容的CLI版本(其中包含Deflate64),自2016年以来没有发布新版本,可能是未维护的。
- p7zip没有为外部软件调用解压缩操作构建API。
- p7zip似乎现在以jinfeihan57/p7zip分支的形式存在,由Arch Linux等打包。
- 这似乎是活跃的,现在可以使用CMake构建,但没有支持构建外部API。
- 许多7-Zip的重新实现,如用于Python的py7zr,不支持Deflate64。
特别是在Python生态系统中,已经提出了几个未满足的请求([1] [2] [3] )以支持Deflate64解压缩。
解决方案
似乎最好的希望是zlib的infback9扩展。这是由zlib的原始作者Mark Adler于2003年开发的,并保留在zlib的源代码库中,但它不是官方支持,不包含构建工具,且不随zlib包分发。此外,infback9仅提供对处理Deflate64位流的低级支持,不提供对ZIP归档格式的支持(这超出了zlib的范围)。
infback9的C语言API相对简单,但需要非平凡的struct和函数指针进行初始化以及一些显式的内存管理操作(调整分配的缓冲区大小并提供Python友好的malloc
),因此仅使用ctypes
包装似乎是不够的。
为了管理ZIP归档提取操作,Python标准库中的zipfile
模块提供了基本功能,并且已经在可用性和使用方面无处不在。然而,zipfile难以扩展,因为它硬编码了许多压缩格式的条件判断,并且不提供轻松增强或替换其部分的功能。猴子补丁可以克服这些问题,而将标准库模块的即插即用、API兼容的补丁降级为基于更自然可扩展的第三方ZIP操作包的工程优势。
项目详情
下载文件
下载适用于您平台的应用程序。如果您不确定选择哪个,请了解有关安装包的更多信息。
源代码分发
构建版本
zipfile-deflate64-0.2.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 875a3299de102edf1c17f8cafcc528b1ca80b62dc4814b9cb56867ec59fbfd18 |
|
MD5 | 9b547b0494c824abe7d0d7d84eeb94d3 |
|
BLAKE2b-256 | 031bf397f821b48156ee94c5ca7ad82dc5cdb73cbcbc4377b9c1b21556f3ce8c |
zipfile_deflate64-0.2.0-cp310-cp310-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f868343cd24bd3c66fbcba9316c6a970f934653bf3d0be89f25fa0335a7ea3ff |
|
MD5 | d53221735fd363f9880948da44aba971 |
|
BLAKE2b-256 | 247cd6cfafa8a4d33936b666c897a981c49f264864d1941d8fa7f1da516cfa41 |
zipfile_deflate64-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b1b4ab8d83bb277983ff273cbf4fcf831023abbc2303f90af9dd4bde3ab4b9c2 |
|
MD5 | 10f57d8b449997c7eaab4d34b9ea8d7b |
|
BLAKE2b-256 | ca74849f94131522ddc7961a598b422aaa310ff0beb2f505497c98f0fbe395a6 |
zipfile_deflate64-0.2.0-cp310-cp310-macosx_10_14_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5ed1c3edc08e8da8fe646b23105e2840f305ce2a75360aa0df7523c1263f43aa |
|
MD5 | 010e0e1b93fbdd75e687a767ff9ce21c |
|
BLAKE2b-256 | a824472f4e44abefbec1c339d31e870df4ed022b01742c385a0a24f77020268e |
zipfile_deflate64-0.2.0-cp39-cp39-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a16cd144c12de642f0ace1aeab7f50e7abc7492c81381faa2b17cc36f38272c4 |
|
MD5 | b3df15fc2828124f7e0807bc8c30b33f |
|
BLAKE2b-256 | 8355f8bebb043d30278ee673697b0d0a86ae8cd484ecaa55593b2962fb90b6b9 |
哈希值 for zipfile_deflate64-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a8557a77c2b6ee8afb49759d9b4c1a9785ca05366cbc4b2c577a859ecba62b85 |
|
MD5 | ab7ab3bcb915427b0eba314dbf6f4a7c |
|
BLAKE2b-256 | 7c4b3c2cd263028ce48f7299359384e3074aa7779f5cdc6b4d78efd04d6df4ee |
哈希值 for zipfile_deflate64-0.2.0-cp39-cp39-macosx_10_14_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d6bb582256f374f5a8570616480f07df0d74460b8c80aaa5fb047a73ff38bcd2 |
|
MD5 | bd94015467849eb0ba41438590c9435f |
|
BLAKE2b-256 | 5d3a356846f02ed8bf8951912913d6443033deab2cbc3d8fdbca039818e88487 |
哈希值 for zipfile_deflate64-0.2.0-cp38-cp38-win_amd64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | dadfdd07f15c0abf394e0599b06a894120ca6f40ded9720c68b267a4ecf8bf48 |
|
MD5 | 3f161a87e15f5cd3bedf4e2c365515cc |
|
BLAKE2b-256 | 3cbe8928696cdf109d7fd4cd35e0c85a4e3713335cfe4399a59387bcc376210e |
哈希值 for zipfile_deflate64-0.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | cc673ff44f1e7fa673b34507d04e6e0b750be372e4f33e40a9364858ef22411f |
|
MD5 | 1acdb19038b9ac186b86d60074c8cc7b |
|
BLAKE2b-256 | 34e31d23a387daad2284c0a4666dae418e72fa893ce02f4b288d696f8d297c96 |
哈希值 for zipfile_deflate64-0.2.0-cp38-cp38-macosx_10_14_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f30f7981689dcf06e2789a2adbf3ff0711e58a710780205c2747ec793373fa2e |
|
MD5 | dbb2a69f8f18dc50e2a3ed2b3be84d41 |
|
BLAKE2b-256 | 7c353f06bc09f987964db6d992bd9a7cc32ca06f032c41caf9491924ecbd2fcd |
哈希值 for zipfile_deflate64-0.2.0-cp37-cp37m-win_amd64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 84432465d0c497c774122073b79ec7fa9ebf28cf066cce5f1a5726dad455086f |
|
MD5 | ea5819fac05e4cfc657f4c7e12091434 |
|
BLAKE2b-256 | 04ae7cf0754378e982e377dd596371004014c4af9f246ea3090b6f63f903f37e |
哈希值 for zipfile_deflate64-0.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6c79e8d3356eb72b9be25bcc36ce3320cbe1f50606f355193d6ad8ead8130fd5 |
|
MD5 | 3d2a83e69c73770a1cd6433dd71c0f47 |
|
BLAKE2b-256 | cbff54da34b527fe2d5a4584abac2f4e4838f907d46e849f067c0f2943d7896f |
哈希值 for zipfile_deflate64-0.2.0-cp37-cp37m-macosx_10_14_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3f7b5f3305880a784e335c9fa1bc33a6a3a8436cdbf3e473690f4da0eb866645 |
|
MD5 | 9642f22c60b56c84e59454d86c8b4653 |
|
BLAKE2b-256 | 797f9209677513f41928af5fe5c584ec5309df015a9b48bda8ae3fc50e0cbeba |
哈希值 for zipfile_deflate64-0.2.0-cp36-cp36m-win_amd64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5b9e0a0d5d742aa4006ab18d31eabc9a83809be3d27dad34707fa136cafa0950 |
|
MD5 | d3c855ccc235e6cfacb67317e331ddde |
|
BLAKE2b-256 | 04a99b2310c40c837a653640505218db3e79af1d897adf949b3b00bdf7d5ff15 |
哈希值 for zipfile_deflate64-0.2.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2096cc9c2a896436ffb27e2cfff60402ca4304b1fbe782265a8c1b2d11dc598a |
|
MD5 | a708ea5a03fca89b064a237271d16878 |
|
BLAKE2b-256 | a1e63f4164fc60d32049e5241e49ffc5b484456fe0183fe0e12a2e5f126dd2df |
哈希值 for zipfile_deflate64-0.2.0-cp36-cp36m-macosx_10_14_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f5313c31e92a8be7e0fed7648b553f041287715d7a28fbfbbadec1dd8e7b773b |
|
MD5 | 6e9d6642c20133cd511ddafed1b67c84 |
|
BLAKE2b-256 | da0f62f0e9162fa63682bce3242c364f260776a4e21e66c1f1966ed0d7368fbd |