python-批量把文件和文件夹同时压缩成ZIP文件

  • 明确需求(压缩成ZIP文件,文件中既有普通文件,又有文件夹)

    1.通过某种方式获得一个文件(文件夹)列表作为一个list(例如wxpython的wx.FileDialog方法,在下面的代码中我们跳过文件夹列表的获取方法)。

    2.选择一个压缩文件的输出目录和压缩文件的输出名字(下面代码中选择输出默认路径为程序根目录)

    3.把文件list里的文件,先统一放在一个临时文件夹里,然后把该临时文件夹压缩成ZIP文件,最后删掉临时文件夹

  • 程序关键点

1.使用python的shutil模块。拷贝文件和拷贝文件夹用的是不同的方法,在填写目标文件夹时,有很大区别,copytree()如果目标文件夹路径已存在,会导致拷贝失败,所以copytree()的目标文件夹路径,我设计成了目标目录+原文件夹名称的路径

2.打包文件夹和删除文件夹,使用shutil的make_archive()和rmtree()

  • 完整代码

运行测试时,请修改file的路径为你自己电脑里的文件路径

 

Posted in python相关