如何在Python中压缩文件?

问题描述 投票:0回答:3

我一直在尝试制作一个 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()


python zip compression python-module txt
3个回答
5
投票

您需要指定压缩方法。使用

ZIP_DEFLATED

,这是最广泛支持的。

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



1
投票
https://docs.python.org/3/library/zipfile.html#zipfile-objects

它建议示例: with ZipFile('spam.zip', 'w') as myzip: myzip.write('eggs.txt')

所以你的代码将是

from zipfile import ZipFile with ZipFile('compressedtextstuff.zip', 'w', zipfile.ZIP_DEFLATED) as myzip: myzip.write('testtext.txt')



-1
投票
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 语句编写了它,所以我会先尝试一下。

编辑:

我刚刚回来说你必须指定你的压缩方法,但马克抢先了我。

这里是 StackOverflow 相关帖子的链接

https://stackoverflow.com/questions/4166447/python-zipfile-module-doesnt-seem-to-be-compressing-my-files#:~:text=This%20is%20because%20ZipFile%20requires,the% 20方法%20to%20be%20zip文件

.

© www.soinside.com 2019 - 2024. All rights reserved.