python中的快速zip解密

python中的快速zip解密,python,zip,unzip,Python,Zip,Unzip,我有一个使用zipfile处理zip文件的程序。它与迭代器一起工作,因为未压缩的文件大于2GB,可能会导致内存问题 with zipfile.Zipfile(BytesIO(my_file)) as myzip: for file_inside in myzip.namelist(): with myzip.open(file_inside) as file: # Process here # for loop ....

我有一个使用
zipfile
处理zip文件的程序。它与
迭代器
一起工作,因为未压缩的文件大于
2GB
,可能会导致内存问题

with zipfile.Zipfile(BytesIO(my_file)) as myzip:
    for file_inside in myzip.namelist():
        with myzip.open(file_inside) as file:
            # Process here
            # for loop ....
然后我注意到这个过程在处理我的文件时非常慢。我可以理解这可能需要一些时间,但至少它应该使用我的机器资源:比方说python进程应该100%使用它所在的核心

因为没有,我开始研究可能的根本原因。我不是压缩方面的专家,所以首先考虑基本问题:

  • 资源似乎不是问题,即使我的编码方法不使用它,也有大量可用的RAM
  • CPU的使用率不高,甚至一个核心也不高
  • 压缩时打开的文件大约为80MB,因此磁盘读取速度也不会变慢
这让我想到瓶颈可能在最不可见的参数:RAM带宽。然而,我不知道如何衡量这一点

然后在软件方面,我发现:

解密速度非常慢,因为它是用本机Python而不是C实现的

我猜,如果它使用的是原生Python,它甚至没有使用OpenGL加速,那么这又是一个缓慢的问题。我也很好奇这个方法是如何工作的,同样是因为CPU使用率低


因此,我的问题当然是,我如何能够以类似的方式工作(在RAM中没有完整的解压缩文件),但在Python中以更快的方式解压缩?是否有其他库或其他方法来克服这种缓慢性?

我做了一些研究,发现如下:

您可以“pip install czipfile”,更多信息请访问

另一个解决方案是使用python的变体“Cython”-


或者您也可以外包到7-Zip,正如这里所解释的:

python有一个库来处理压缩文件,而无需占用内存

引自文件:

布松-齐普利

ZipFly是一个基于zipfile.py的zip存档生成器。它是由Buzon.io创建的,用于生成非常大的ZIP归档文件,以便立即发送到客户端,或者在不增加内存的情况下编写大型ZIP归档文件


从未使用过,但可以提供帮助。

Python3有一个github端口:很有趣,我找不到对它的单一引用。但是我无法安装它。它失败是因为尝试读取
自述文件而不是
README.md
,并且作者在回购协议中没有允许的问题。