我在 Python 中遇到压缩问题。 我知道我应该在写入压缩 zip 文件时调用 ZIP_DEFLATED 方法,但它对我不起作用。 我在 C:zip 目录中有 3 个 PDF 文档。 当我运行以下代码时,它工作正常:
import os,sys
list = os.listdir('C:\zip')
file = ZipFile('test.zip','w')
for item in list:
file.write(item)
file.close()
它使 test.zip 文件没有压缩。 当我将第四行更改为:
file = ZipFile('test.zip','w', compression = ZIP_DEFLATED)
它还生成了未经压缩的 test.zip 文件。 我还尝试更改写入方法以为其提供compress_ type 参数:
file.write(item, compress_type = ZIP_DEFLATED)
但这也行不通。 我在 Win7 中使用 Python 2.7.4 版。 我用另一台计算机(同样的环境,Win7 和 Python 2.7.4)厌倦了代码,它使 test.zip 文件压缩得像它应该的那样。 我知道 zlib 模块应该可用,当我运行它时:
import zlib
它不会返回错误,如果 zlib 模块有问题,顶部的代码也应该返回错误,所以我怀疑 zlib 不是问题。
最佳答案
默认情况下 ZIP 模块只存储数据,要压缩它你可以这样做:
import zipfile
try:
import zlib
mode= zipfile.ZIP_DEFLATED
except:
mode= zipfile.ZIP_STORED
zip= zipfile.ZipFile('zipfilename', 'w', mode)
zip.write(item)
zip.close()
关于Python zipfile 模块不压缩文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18151839/