Python用zip_file压缩文件夹,用unzip_file解压文件夹

1. 压缩效果对比

发现压缩率挺低的

压缩前:28.9MB,压缩后依然:27.8MB

2. 压缩耗时

运用了Python 装饰器:拦截每个方法,并输出方法的耗时;
可以参考我之前的博客:Python装饰器的神奇功能:自动打印每个方法耗时

运行结果如下图:

压缩比解压稍耗时;

压缩率:28.9M/1.23s —— 23M/s
解压率:28.9M/0.17s —— 170M/s

2. 源码

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os
import zipfile
import log_exec_timedef 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)@log_exec_time.log_execution_time
def zip_file(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@log_exec_time.log_execution_time
def unzip_file(zipfilename, unziptodir):"""解压缩文件夹zip包属性描述:zipfilename: 压缩包名称unziptodir: 解压缩目录名称"""if not os.path.exists(unziptodir): os.mkdir(unziptodir)zfobj = zipfile.ZipFile(zipfilename)for name in zfobj.namelist():name = name.replace('\\', '/')if name.endswith('/'):os.mkdir(os.path.join(unziptodir, name))else:ext_filename = os.path.join(unziptodir, name)ext_dir = os.path.dirname(ext_filename)if not os.path.exists(ext_dir): os.mkdir(ext_dir)outfile = open(ext_filename, 'wb')outfile.write(zfobj.read(name))outfile.close()if __name__ == '__main__':zip_file("D:/gifCreate", 'D:', 'gifCreate.zip')unzip_file('D:/gifCreate.zip','D:/gifCreate_')

Python压缩目录文件夹,解压目录文件夹及耗时效率统计相关推荐

  1. win7怎么解压rar文件_win7解压rar文件的方法

    大家知道win7怎么解压rar文件?rar是一种常用的文件压缩与归档的私有格式,用于数据压缩与归档打包.加快传输速度,我们都会将文件进行压缩.但最近有Win7系统用户反映收到rar文件,却不知道w怎么 ...

  2. 第五章、epub文件处理 -- 解压epub文件

    https://github.com/geometer/FBReaderJ 第五章.epub文件处理 -- 解压epub文件 本章将介绍程序是如何将epub内部被压缩过的xml文件转化为一个可以正常解 ...

  3. 【python】Python通过unrar库实现解压rar文件

    写在前面 因实际问题需要通过Python来解压rar文件,一开始是通过pip install rarfile也就是安装rarfile库来实现,但是它会报"rarfile.RarUnknown ...

  4. linux服务器中如何解压分卷文件,Linux解压rar文件(unrar安装和使用,分卷解压)...

    windows平台很多压缩文档为rar文件,那么怎么做到Linux解压rar文件(unrar安装和使用)? 简单,centos5安装unrar即可. unrar安装 方法如下: wget  http: ...

  5. linux的解压zip文件,linux解压zip文件命令是什么

    linux解压zip文件命令是什么 发布时间:2020-04-23 11:02:45 来源:亿速云 阅读:162 作者:小新 今天小编给大家分享的是linux解压zip文件命令是什么,相信很多人都不太 ...

  6. 【Android 安全】DEX 加密 ( 代理 Application 开发 | 解压 apk 文件 | 判定是否是第一次启动 | 递归删除文件操作 | 解压 Zip 文件操作 )

    文章目录 一.判定是否是第一次启动 二.递归删除文件操作 三.解压 Zip 文件操作 四.解压操作相关代码 参考博客 : [Android 安全]DEX 加密 ( 常用 Android 反编译工具 | ...

  7. deb下载路径、apt下载路径(deb路径、apt路径)、自定义打包deb文件、安装deb文件、解压deb文件

    只下载不安装deb apt-get --download-only install freesweep 默认下载路径:/var/cache/apt/archive 解压deb文件  dpkg -x f ...

  8. 记一次vue压缩打包文件及解压zip文件

    一.压缩--使用archiver 选择archiver 是因为它能根据目录压缩整个文件夹,npm install archiver,js内容如下: const fs = require('fs');c ...

  9. java zip压缩 加密码_java 压缩成zip文件、解压zip文件(可设置密码)

    1.情景展示 java实现将文件夹进行压缩打包的功能及在线解压功能 2.解决方案 方式一:压缩.解压zip 准备工作:slf4j-api.jar org.slf4j slf4j-api 1.7.25 ...

  10. Python:下载zip文件并解压zip文件数据

    以下载百度地图官方给出的中国各大城市中心经纬度压缩文件( https://mapopen-website-wiki.bj.bcebos.com/static_zip/BaiduMap_cityCent ...

最新文章

  1. html5手机端的点击弹出侧边滑动菜单代码
  2. 基于JavaWeb实现在线租房系统
  3. Linux C高级编程——网络编程之API(5)
  4. 风靡全球的15则数学动图:让你秒懂数学概念,看后觉得相见恨晚啊
  5. 真实的程序员是什么样子的!
  6. letecode [204] - Count Primes
  7. Oracle中针对层次数据所设计的专用SQL查询语句
  8. python scrapy框架 抓取的图片路径打不开图片_Python中Scrapy爬虫图片处理详解
  9. 【工具】CodeSmith Generator 7.0.2激活步骤
  10. 老生常谈之CSS的垂直居中
  11. python 注销一大段_Python 编程从入门到实践 第19章 注销一节问题
  12. 概率论速成-基于mooc
  13. WPS 二维表格匹配方式(利用VLOOKUP+IF/SWITCH多条件查询)
  14. python图片加透明通道并将背景设为透明
  15. 广域网 —— 广域网的基本概念
  16. MacBook软件安装和更新与卸载
  17. 取消唤醒计算机需要密码怎么设置密码,Win10唤醒睡眠时需要输入密码如何取消_win10系统取消唤醒密码的方法...
  18. 什么是MACsec功能?有什么作用?
  19. angular设置路由实现无刷新跳转
  20. Python基础第一周第三天

热门文章

  1. python list 的乘法
  2. python 获取打印的内容并保存到记事本里面
  3. Ubuntu系统创建AndroidStudio启动图标(快捷方式)
  4. window10 系统查看控制面板的方法
  5. 深入理解Java虚拟机——第二章——Java内存区域与内存溢出异常
  6. 用 Hystrix 构建高可用服务架构
  7. NOIP模拟 数球(思维题)
  8. django-debug-toolbar使用指南
  9. spring boot hello world 搭建
  10. 【转】Winform输入法控制