利用python实现文件压缩打包的功能

主要是利用了zipfile实现文件压缩打包,简单实例代码如下:

import zipfile

with zipfile.ZipFile("archive.zip",'w') as zipf:
    zipf.write("config.ini")
    zipf.write("test.py")

其中的模式 w表示如果没有该文件则创建该文件,如果有该文件则覆盖。

那么如果已经存在该压缩文件,现在想往该压缩文件里面追加文件,是否可以?

实际上肯定可以的,只需要将w改成a即可。

import zipfile

with zipfile.ZipFile("archive.zip",'a') as zipf:
    zipf.write("mylist.pkl")

需要注意的是,上面的代码实际上只执行了一个打包的功能,根本没有对文件进行压缩,所以打包之后的文件大小没有什么变化,这显然不是我想要的。

这就需要对ZipFile函数的具体参数有所了解

  • ZipFile(filename, mode='r', compression=ZIP_STORED, allowZip64=True):创建或打开Zip文件。filename为文件名,mode为打开文件的模式,compression为压缩模式,allowZip64为是否支持Zip64格式。
  • ZipFile.write(filename, arcname=None, compress_type=None):将文件写入Zip文件中。filename为文件名,arcname为写入Zip文件中的文件名,compress_type为压缩模式。
  • ZipFile.extractall(path=None, members=None, pwd=None):将Zip文件中的所有文件解压到指定目录下。path为解压目录,members为要解压的文件列表,pwd为解压密码。

按照上面的提示,将关键代码进行修改如下:

实际上肯定可以的,只需要将w改成a即可。

import zipfile

with zipfile.ZipFile("archive.zip",'a',compression=zipfile.ZIP_STORED, allowZip64=True) as zipf:
    zipf.write("mylist.pkl")

结果发现,外甥打灯笼--- 照舅(旧),对多个参数值进行尝试。

最终解决办法,请查看这个网址:利用python实现文件压缩打包的功能 | 老五笔记

你可能感兴趣的:(python,python,前端,开发语言)