思路:先把第一级目录中的文件进行遍历,如果是文件,则把它连同当前路径一起加入result(list),如果是子目录,则在整个目录上继续深度优先遍历,直到所有的文件都被加入。主要使用python3中zipfile模块:

class zipfile.ZipFilefile [,mode [,compression [,allowZip64 ] ] ] )

参数说明:

1.第一个参数file可以是文件(字符串)的路径,也可以是类文件对象

2.第二个参数mode模式参数可以是'r'读取现有的文件,'w'以截断并写入一个新的文件,或'a'将追加到现有文件。如果mode'a'file引用现有的ZIP文件,则会向其中添加其他文件,如果文件未引用ZIP文件,则会将新的ZIP存档附加到该文件,这用于将ZIP存档添加到另一个文件

3.第三个参数compression是编写存档时使用的ZIP压缩方法,可以是ZIP_STOREDZIP_DEFLATED

Demo:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-import os
import zipfiledef get_zip_file(input_path, result):"""对目录进行深度优先遍历:param input_path::param result::return:"""files = os.listdir(input_path)for file in files:if os.path.isdir(input_path + '/' + file):get_zip_file(input_path + '/' + file, result)else:result.append(input_path + '/' + file)def zip_file_path(input_path, output_path, output_name):"""压缩文件:param input_path: 压缩的文件夹路径:param output_path: 解压(输出)的路径:param output_name: 压缩包名称:return:"""f = zipfile.ZipFile(output_path + '/' + output_name, 'w', zipfile.ZIP_DEFLATED)filelists = []get_zip_file(input_path, filelists)for file in filelists:f.write(file)# 调用了close方法才会保证完成压缩f.close()return output_path + r"/" + output_nameif __name__ == '__main__':zip_file_path(r"./testing", 'F:', '123.zip')

python3实现zip格式压缩文件夹相关推荐

  1. zip格式压缩文件并打包下载

    压缩文件并下载 zip格式压缩文件并打包下载 zip格式压缩文件并打包下载 Map<String, String> param = new HashMap<String, Strin ...

  2. Linux命令zip:压缩文件夹时,排除指定文件或文件夹

    情景: 例我现在有一级目录chaochao, 二级目录有text文件夹, 三级目录有music文件夹.photo文件夹.txt1.txt文件.txt2.txt文件 music文件夹下有music1.t ...

  3. java 生成 zip格式 压缩文件

    ackage org.fh.util;import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStr ...

  4. Java用ZIP格式压缩和解压缩文件

    转载:java jdk实例宝典 感觉讲的很好就转载在这保存! java.util.zip包实现了Zip格式相关的类库,使用格式zip格式压缩和解压缩文件的时候,需要导入该包. 使用zipoutputs ...

  5. java zip文件夹_如何使用java压缩文件夹成为zip包

    展开全部 在JDK中有一个zip工具类:java.util.zip    Provides classes for reading and writing the standard ZIP and G ...

  6. 如何在linux下解压缩rar和zip格式的文件压缩包

    转载:http://oldboy.blog.51cto.com/2561410/597515 使用apt-get安装:  sudo apt-get install  rar  zip rar使用: 将 ...

  7. java压缩zip文件夹错误_Java将文件或者文件夹压缩成zip(修复文件夹中存在多个文件报Stream Closed错误问题)...

    项目场景: Java将文件或者文件夹压缩成zip(修复文件夹中存在多个文件报Stream Closed错误问题) 问题描述: 最近的项目需要将多级文件夹压缩成zip,网上找了几个工具类,都会报错,所以 ...

  8. 利用WinRAR命令行压缩文件或文件夹2007-11-14 15:07压缩文件夹

    利用WinRAR命令行压缩文件或文件夹 2007-11-14 15:07 压缩文件夹winrar.exe a -ag -k -r -s -ibck c:/bak.rar c:/dat/ 压缩多个文件 ...

  9. java putnextentry_Java对zip格式压缩和解压缩

    Java对zip格式压缩和解压缩 通过使用java的相关类可以实现对文件或文件夹的压缩,以及对压缩文件的解压. 1.1 ZIP和GZIP的区别 gzip是一种文件压缩工具(或该压缩工具产生的压缩文件格 ...

最新文章

  1. ubuntu16.04+anaconda3+python3.6安装OpenCV3
  2. Python 第三方库之docx
  3. 循环语句:For循环
  4. python热键+鼠标键盘控制
  5. Js树形插件ztree
  6. sa密码修改记录_【数据完整性】一文读懂电子记录与电子签名
  7. hibernate优化
  8. 用CSS绘制最常见的40种形状和图形
  9. httpd安装、配置、编译三种访问模式控制https证书的安装访问实例及排错
  10. 使用switch常量c语言,c语言switch(c语言switch语句用法)
  11. 场地预约管理微信小程序开发过程中的错误记录
  12. ARL资产灯塔收集系统
  13. 当爱情遇见钱:找有钱的男人能得到啥
  14. 贝叶斯估计和极大似然估计到底有何区别
  15. LaTeX入门必备视频教程
  16. 灰关联分析与语音/音乐信号识别
  17. Android开发艺术探索读书笔记(一)
  18. stm32/esp32/cam智能安防系统远程视频监控物联网远程传输视频图像GSM短信报警
  19. Cisco3905话机一直停留在‘image downloading fail’界面
  20. bzoj2818: Gcd 莫比乌斯繁衍

热门文章

  1. 表单序列化提交中文乱码解决方案
  2. HTML5API(2)
  3. linux 安装 apache+mysql+php
  4. 腾讯云CMQ消息队列在Windows环境下的使用
  5. vc 递归删除非空文件夹
  6. Paramiko,数据库
  7. asp.net发布网站(转)
  8. 服务器控件调用JS方法
  9. Python解决ModuleNotFoundError: No module named ‘Queue‘的问题
  10. The prefix “mvc“ for element “mvc:annotation-driven“ is not bound 异常