Python实现压缩与解压gzip大文件的方法


Posted in Python onSeptember 18, 2016

本文实例讲述了Python实现压缩与解压gzip大文件的方法。分享给大家供大家参考,具体如下:

#encoding=utf-8
#author: walker
#date: 2015-10-26
#summary: 测试gzip压缩/解压文件
import gzip
BufSize = 1024*8
def gZipFile(src, dst):
  fin = open(src, 'rb')
  fout = gzip.open(dst, 'wb')
  in2out(fin, fout)
def gunZipFile(gzFile, dst):
  fin = gzip.open(gzFile, 'rb')
  fout = open(dst, 'wb')
  in2out(fin, fout)
def in2out(fin, fout):
  while True:
    buf = fin.read(BufSize)
    if len(buf) < 1:
      break
    fout.write(buf)
  fin.close()
  fout.close()
if __name__ == '__main__':
  src = r'D:\tmp\src.txt'
  dst = r'D:\tmp\src.txt.gz'
  ori = r'D:\tmp\ori.txt'
  gZipFile(src, dst)
  print('gZipFile over!')
  gunZipFile(dst, ori)
  print('gunZipFile over!')

也可以简单地封装成一个类:

class GZipTool:
  def __init__(self, bufSize):
    self.bufSize = bufSize
    self.fin = None
    self.fout = None
  def compress(self, src, dst):
    self.fin = open(src, 'rb')
    self.fout = gzip.open(dst, 'wb')
    self.__in2out()
  def decompress(self, gzFile, dst):
    self.fin = gzip.open(gzFile, 'rb')
    self.fout = open(dst, 'wb')
    self.__in2out()
  def __in2out(self,):
    while True:
      buf = self.fin.read(self.bufSize)
      if len(buf) < 1:
        break
      self.fout.write(buf)
    self.fin.close()
    self.fout.close()

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

Python 相关文章推荐
Python中实现远程调用(RPC、RMI)简单例子
Apr 28 Python
Python随机生成带特殊字符的密码
Mar 02 Python
Python实现京东秒杀功能代码
May 16 Python
解决webdriver.Chrome()报错:Message:'chromedriver' executable needs to be in Path
Jun 12 Python
python文档字符串(函数使用说明)使用详解
Jul 30 Python
python实现比对美团接口返回数据和本地mongo数据是否一致示例
Aug 09 Python
详解centos7+django+python3+mysql+阿里云部署项目全流程
Nov 15 Python
解决pyCharm中 module 调用失败的问题
Feb 12 Python
python pymysql链接数据库查询结果转为Dataframe实例
Jun 05 Python
Python使用正则表达式实现爬虫数据抽取
Aug 17 Python
教你如何用python操作摄像头以及对视频流的处理
Oct 12 Python
python单向链表实例详解
May 25 Python
Python打包文件夹的方法小结(zip,tar,tar.gz等)
Sep 18 #Python
Python简单格式化时间的方法【strftime函数】
Sep 18 #Python
Python简单获取自身外网IP的方法
Sep 18 #Python
Python简单检测文本类型的2种方法【基于文件头及cchardet库】
Sep 18 #Python
Python3实现并发检验代理池地址的方法
Sep 18 #Python
Python常见格式化字符串方法小结【百分号与format方法】
Sep 18 #Python
Python3的urllib.parse常用函数小结(urlencode,quote,quote_plus,unquote,unquote_plus等)
Sep 18 #Python
You might like
关于js和php对url编码的处理方法
2014/03/04 PHP
php时间戳格式化显示友好的时间函数分享
2014/10/21 PHP
php实现encode64编码类实例
2015/03/24 PHP
PHP封装的XML简单操作类完整实例
2017/11/13 PHP
PHP实现无限极分类的两种方式示例【递归和引用方式】
2019/03/25 PHP
微信公众号实现扫码获取微信用户信息(网页授权)
2019/04/09 PHP
Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析
2020/05/15 PHP
DOM下的节点属性和操作小结
2009/05/14 Javascript
js将iframe中控件的值传到主页面控件中的实现方法
2013/03/11 Javascript
javascript中加号(+)操作符的一些神奇作用
2014/06/06 Javascript
PHP中使用微秒计算脚本执行时间例子
2014/11/19 Javascript
深入分析js的冒泡事件
2014/12/05 Javascript
js+css实现tab菜单切换效果的方法
2015/01/20 Javascript
jQuery 如何实现一个滑动按钮开关
2016/12/01 Javascript
详解支持Angular 2的表格控件
2017/01/19 Javascript
使用vue.js写一个tab选项卡效果
2017/03/25 Javascript
ES6中Array.includes()函数的用法
2017/09/20 Javascript
Element Collapse 折叠面板的使用方法
2020/07/26 Javascript
Vue双向数据绑定(MVVM)的原理
2020/10/03 Javascript
[11:12]2018DOTA2国际邀请赛寻真——绿色长城OpTic
2018/08/10 DOTA
基于进程内通讯的python聊天室实现方法
2015/06/28 Python
利用python实现命令行有道词典的方法示例
2017/01/31 Python
Python利用Beautiful Soup模块创建对象详解
2017/03/27 Python
Python中Selenium模拟JQuery滑动解锁实例
2017/07/26 Python
Python3 max()函数基础用法
2019/02/19 Python
使用Python脚本zabbix自定义key监控oracle连接状态
2019/08/28 Python
Python Django模板之模板过滤器与自定义模板过滤器示例
2019/10/18 Python
Python Pandas 对列/行进行选择,增加,删除操作
2020/05/17 Python
加拿大最大的相机店:Henry’s
2017/05/17 全球购物
TripAdvisor西班牙官方网站:全球领先的旅游网站
2018/01/10 全球购物
英国买鞋网站:Charles Clinkard
2019/11/14 全球购物
学习雷锋倡议书
2014/04/15 职场文书
医院深入开展党的群众路线教育实践活动实施方案
2014/08/27 职场文书
课内比教学心得体会
2014/09/09 职场文书
诉讼授权委托书
2014/10/15 职场文书
python opencv人脸识别考勤系统的完整源码
2021/04/26 Python