如何压缩 python 中的文件?

How to zip a file in python?

我一直在尝试制作一个 python 脚本来使用 zipfile 模块压缩文件。虽然文本文件被制作成一个zip文件,但它似乎并没有压缩它; testtext.txt 是 1024KB,而 testtext.zip(代码的创建)也等于 1024KB。但是,如果我在文件资源管理器中手动压缩 testtext.txt,生成的 zip 文件 压缩的(具体为 2KB)。如果可能的话,我该如何解决这个逻辑错误?

下面是我用来(未成功)压缩文本文件的脚本。

from zipfile import ZipFile

textFile = ZipFile("compressedtextstuff.zip", "w")
textFile.write("testtext.txt")
textFile.close()

https://docs.python.org/3/library/zipfile.html#:~:text=with%20ZipFile(%27spam.zip%27%2C%20%27w%27)%20as%20myzip%3A%0A%20%20%20%20myzip.write(%27eggs.txt%27)

在文档中,他们用 with 语句编写了它,所以我会先尝试一下。

编辑:

我只是回来说你必须指定你的压缩方法,但马克抢先一步。

这是关于它的 link 到 Whosebug post .

嗯,这很奇怪。 Python的zipfile默认是存储的压缩方式,不压缩! (他们为什么要那样做?)

您需要指定压缩方式。使用ZIP_DEFLATED,这是最广泛支持的。

import zipfile
zip = zipfile.ZipFile("stuff.zip", "w", zipfile.ZIP_DEFLATED)
zip.write("test.txt")
zip.close()