如何在Python中压缩文件而不是文件夹/目录

时间:2018-08-05 16:03:57

标签: python zip shutil

我正在尝试压缩文件而不是文件夹或目录。

这是我的想法:

from shutil import make_archive

make_archive("name_of_zip", "zip", "image.png")

我知道我可以使用 ZipFile ,但是我听说它不太可靠。

但是出现错误,因为我无法压缩文件,而只能压缩目录。

NotADirectoryError: [Errno 20] Not a directory: 'image.png'

有没有办法在Python中做到这一点,或者我必须使用子进程并运行如下代码:

$ zip zip_with_image.zip image.png
  adding: requirements.txt (stored 0%)

2 个答案:

答案 0 :(得分:0)

如文档here中所述。您可以使用下面的代码来压缩文件。

$ python -m zipfile -c monty.zip spam.txt eggs.txt

答案 1 :(得分:0)

您可以使用zipfile模块:

>>> from zipfile import ZipFile
>>> with ZipFile("mynew.zip","w") as myzip:
...  myzip.write('z.py')
... 

生成名为mynew.zip的本地文件,其中包含单个文件z.py
如果您需要将更多文件添加到zip文件中,请继续进行myzip.write('filename'),直到完成。