【发布时间】:2015-11-25 01:18:38
【问题描述】:
我真的不了解 python 压缩,因为每当我尝试压缩文件夹或文件时,我最终会得到一个比原始文件大 5.5 倍的非常大的文件。为什么会这样?有什么方法可以用python压缩文件夹或文件并获得最多为原始文件大小的输出?这是我正在使用的代码。
import os, zipfile
def zipfiles(filename, destname):
try:
zf = zipfile.ZipFile(destname, 'w', zipfile.ZIP_DEFLATED)
for dirname, subdirs, files in os.walk(filename):
zf.write(dirname)
for filename in files:
zf.write(os.path.join(dirname, filename))
zf.close()
except Exception, e:
print str(e)
def main():
x = raw_input('Enter Filename: ')
while len(x) == 0:
x = raw_input('Enter Filename: ')
y = raw_input('Enter destination name: ')
while len(y) == 0:
y = raw_input('Enter destination name: ')
zipfiles(x, y+'.zip')
main()
【问题讨论】:
-
您如何比较尺寸?如果您使用
zipfile.ZIP_STORED而不是ZIP_DEFLATED,您应该可以直接比较。另外,您的数据集有多大? -
你压缩什么文件?许多小的?
-
我有一些项目的 java 文件夹。我想将该文件夹发送给我的朋友,因此它应该被压缩,它的大小是 2.6Mb,但压缩后得到 11.4Mb
-
我尝试了“zipfile.ZIP_STORED”,现在它变得疯狂到 27.7Mb
-
不确定您为什么要这样做,但请尝试删除
zf.write(dirname)。
标签: python file zip compression