python unzip – 非常慢?

有人可以解释下面的谜团吗?

我创建了一个大小约为37 [MB]的二进制文件.在Ubuntu中使用终端压缩它 – 花费不到1 [秒].然后我尝试了python:以编程方式(使用zipfile模块)拉取它也花了大约1 [秒].

然后我尝试解压缩我创建的zip文件.在Ubuntu中 – 使用终端 – 这不到1秒[秒].

在python中,解压缩的代码(使用zipfile模块)接近37 [秒]运行!任何想法为什么?

最佳答案 我也在努力用
Python解压缩/解压缩/解压缩zip文件,并且“创建ZipFile对象,循环遍历.namelist(),读取文件并将它们写入文件系统”低级方法似乎不太Python .所以我开始挖掘
zipfile objects,我相信没有很好的文档,涵盖了所有的对象方法:

>>> from zipfile import ZipFile
>>> filepath = '/srv/pydocfiles/packages/ebook.zip'
>>> zip = ZipFile(filepath)
>>> dir(zip)
['NameToInfo', '_GetContents', '_RealGetContents', '__del__', '__doc__', '__enter__', '__exit__', '__init__', '__module__', '_allowZip64', '_didModify', '_extract_member', '_filePassed', '_writecheck', 'close', 'comment', 'compression', 'debug', 'extract', 'extractall', 'filelist', 'filename', 'fp', 'getinfo', 'infolist', 'mode', 'namelist', 'open', 'printdir', 'pwd', 'read', 'setpassword', 'start_dir', 'testzip', 'write', 'writestr'] 

我们去“extractall”方法就像tarfile’s extractall一样! (在python 2.6和2.7但不是2.5)

然后表现关注;文件ebook.zip是84.6 MB(主要是pdf文件),未压缩文件夹是103 MB,默认情况下压缩为“存档实用程序”,位于MacOSx 10.5下.所以我对Python的timeit模块做了同样的事情:

>>> from timeit import Timer
>>> t = Timer("filepath = '/srv/pydocfiles/packages/ebook.zip'; \
...         extract_to = '/tmp/pydocnet/build'; \
...         from zipfile import ZipFile; \
...         ZipFile(filepath).extractall(path=extract_to)")
>>> 
>>> t.timeit(1)
1.8670060634613037

在装载量很大的机器上花了不到2秒的时间,其他应用程序正在使用90%的内存.

希望这有助于某人.

点赞