python3实现的zip格式压缩文件夹操作示例


Posted in Python onAugust 17, 2019

本文实例讲述了python3实现的zip格式压缩文件夹操作。分享给大家供大家参考,具体如下:

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

class zipfile.ZipFile(file [,mode [,compression [,allowZip64 ] ] ] )

参数说明:

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

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

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

Demo:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os
import zipfile
def 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_name
if __name__ == '__main__':
  zip_file_path(r"./testing", 'F:', '123.zip')

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python中条件选择和循环语句使用方法介绍
Mar 13 Python
pyqt4教程之实现半透明的天气预报界面示例
Mar 02 Python
python连接mysql实例分享
Oct 09 Python
详解Python3中字符串中的数字提取方法
Jan 14 Python
Django日志模块logging的配置详解
Feb 14 Python
django框架如何集成celery进行开发
May 24 Python
Python自然语言处理 NLTK 库用法入门教程【经典】
Jun 26 Python
python networkx 根据图的权重画图实现
Jul 10 Python
Python 求数组局部最大值的实例
Nov 26 Python
Python3之外部文件调用Django程序操作model等文件实现方式
Apr 07 Python
python实现在线翻译
Jun 18 Python
Matlab使用Plot函数实现数据动态显示方法总结
Feb 25 Python
django 通过url实现简单的权限控制的例子
Aug 16 #Python
对Django中内置的User模型实例详解
Aug 16 #Python
对Django中的权限和分组管理实例讲解
Aug 16 #Python
django创建最简单HTML页面跳转方法
Aug 16 #Python
在django中实现页面倒数几秒后自动跳转的例子
Aug 16 #Python
解决python3 安装不了PIL的问题
Aug 16 #Python
Python爬虫 批量爬取下载抖音视频代码实例
Aug 16 #Python
You might like
Laravel 自带的Auth验证登录方法
2019/09/30 PHP
javascript concat数组累加 示例
2009/09/03 Javascript
Iframe 自适应高度并实时监控高度变化的js代码
2009/10/30 Javascript
基于JQuery的Select选择框的华丽变身
2011/08/23 Javascript
js点击出现悬浮窗效果不使用JQuery插件
2014/01/20 Javascript
jQuery设置与获取HTML,文本和值的简单实例
2014/02/26 Javascript
JavaScript匿名函数与委托使用示例
2014/07/22 Javascript
javascript作用域链(Scope Chain)用法实例解析
2015/11/30 Javascript
jQuery+Ajax实现限制查询间隔的方法
2016/06/07 Javascript
jQuery简单实现列表隐藏和显示效果示例
2016/09/12 Javascript
jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
2017/04/02 jQuery
详解Vue 动态添加模板的几种方法
2017/04/25 Javascript
js实现鼠标拖拽多选功能示例
2017/08/01 Javascript
Js利用console计算代码运行时间的方法示例
2017/09/24 Javascript
React中使用UEditor百度富文本的方法
2018/08/22 Javascript
重学JS之显示强制类型转换详解
2019/06/30 Javascript
Vue中el-form标签中的自定义el-select下拉框标签功能
2020/04/20 Javascript
微信小程序实现搜索框功能及踩过的坑
2020/06/19 Javascript
Python 3.x 新特性及10大变化
2015/06/12 Python
python+opencv实现动态物体追踪
2018/01/09 Python
python链接oracle数据库以及数据库的增删改查实例
2018/01/30 Python
Python使用xlwt模块操作Excel的方法详解
2018/03/27 Python
2020版Python学习路线图(附学习资料)
2020/09/15 Python
新秀丽拉杆箱美国官方网站:Samsonite美国
2016/07/25 全球购物
西班牙英格列斯百货英国官网:El Corte Inglés英国
2017/10/30 全球购物
Electrolux伊莱克斯巴西商店:家用电器、小家电和配件
2018/05/23 全球购物
瑞士隐形眼镜和护理产品网上商店:Linsenklick
2019/10/21 全球购物
俄罗斯电子产品、计算机和家用电器购物网站:OLDI
2019/10/27 全球购物
品学兼优的大学生自我评价
2013/09/20 职场文书
英语专业毕业生求职简历的自我评价
2013/10/24 职场文书
试用期员工考核制度
2014/01/22 职场文书
省优秀教师事迹材料
2014/01/30 职场文书
转预备党员政审材料
2014/02/06 职场文书
行政二审代理词
2015/05/25 职场文书
创业计划书之外语培训班
2019/11/02 职场文书
python运行脚本文件的三种方法实例
2022/06/25 Python