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 list中append()与extend()用法分享
Mar 24 Python
Python标准库之循环器(itertools)介绍
Nov 25 Python
python单元测试unittest实例详解
May 11 Python
Python网络爬虫项目:内容提取器的定义
Oct 25 Python
Python中扩展包的安装方法详解
Jun 14 Python
Python文件操作基本流程代码实例
Dec 11 Python
python看某个模块的版本方法
Oct 16 Python
python通过ffmgep从视频中抽帧的方法
Dec 05 Python
PyQt5 实现给窗口设置背景图片的方法
Jun 13 Python
Python语法垃圾回收机制原理解析
Mar 25 Python
详解python程序中的多任务
Sep 16 Python
python自动从arxiv下载paper的示例代码
Dec 05 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
用php实现的获取网页中的图片并保存到本地的代码
2010/01/05 PHP
php中使用addslashes函数报错问题的解决方法
2013/02/06 PHP
php旋转图片90度的方法
2013/11/07 PHP
PHP命名空间(namespace)原理与用法详解
2019/12/11 PHP
jquery实现类似EasyUI的页面布局可改变左右的宽度
2020/09/12 Javascript
javascript超过容器后显示省略号效果的方法(兼容一行或者多行)
2016/07/14 Javascript
jstl中判断list中是否包含某个值的简单方法
2016/10/14 Javascript
javascript 面向对象function详解及实例代码
2017/02/28 Javascript
Angular利用trackBy提升性能的方法
2018/01/26 Javascript
vue中利用Promise封装jsonp并调取数据
2019/06/18 Javascript
ES6 Symbol数据类型的应用实例分析
2019/06/26 Javascript
微信小程序JS加载esmap地图的实例详解
2019/09/04 Javascript
Python版实现微信公众号扫码登陆
2020/05/28 Javascript
python机器学习实战之最近邻kNN分类器
2017/12/20 Python
Python unittest 简单实现参数化的方法
2018/11/30 Python
Python实现的爬取百度文库功能示例
2019/02/16 Python
Python3匿名函数lambda介绍与使用示例
2019/05/18 Python
Python函数参数匹配模型通用规则keyword-only参数详解
2019/06/10 Python
Python操作Excel的学习笔记
2021/02/18 Python
HTML5实现可缩放时钟代码
2017/08/28 HTML / CSS
微软台湾官方网站:Microsoft台湾
2018/08/15 全球购物
美国户外运动商店:Sun & Ski
2018/08/23 全球购物
德国受欢迎的旅游和休闲网站:lastminute.de
2019/09/23 全球购物
命名空间(namespace)和程序集(Assembly)有什么区别
2015/09/25 面试题
网上常见的一份Linux面试题(多项选择部分)
2014/09/09 面试题
挑战杯创业计划书的写作指南
2014/01/07 职场文书
服务员自我评价
2014/01/25 职场文书
庆元旦广播稿
2014/02/10 职场文书
会计自荐信范文
2014/03/09 职场文书
小区物业门卫岗位职责
2014/04/10 职场文书
学校校庆演讲稿
2014/05/22 职场文书
个人自荐材料
2014/05/23 职场文书
活动总结范文
2014/08/30 职场文书
法定代表人资格证明书
2014/09/11 职场文书
2015年度团总支工作总结
2015/04/23 职场文书
mysql字段为NULL索引是否会失效实例详解
2022/05/30 MySQL