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 字符串定义
Sep 25 Python
跟老齐学Python之print详解
Sep 28 Python
Python实现自动为照片添加日期并分类的方法
Sep 30 Python
Python3导入CSV文件的实例(跟Python2有些许的不同)
Jun 22 Python
对python requests的content和text方法的区别详解
Oct 11 Python
python 移动图片到另外一个文件夹的实例
Jan 10 Python
pyqt5移动鼠标显示坐标的方法
Jun 21 Python
利用Python绘制Jazz网络图的例子
Nov 21 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
Jan 19 Python
python能做哪些生活有趣的事情
Sep 09 Python
Python引入多个模块及包的概念过程解析
Sep 21 Python
Python可视化神器pyecharts之绘制地理图表练习
Jul 07 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/04/22 PHP
纯php打造的tab选项卡效果代码(不用js)
2010/12/29 PHP
php中通过curl模拟登陆discuz论坛的实现代码
2012/02/16 PHP
PHP编程获取音频文件时长的方法【基于getid3类】
2017/04/20 PHP
yii2中dropDownList实现二级和三级联动写法
2017/04/26 PHP
php数据库的增删改查 php与javascript之间的交互
2017/08/31 PHP
Javascript公共脚本库系列(一): 弹出层脚本
2011/02/24 Javascript
EasyUI的treegrid组件动态加载数据问题的解决办法
2011/12/11 Javascript
JS/FLASH实现复制代码到剪贴板(兼容所有浏览器)
2013/05/27 Javascript
js操作输入框提示信息且响应鼠标事件
2014/03/25 Javascript
Nodejs极简入门教程(三):进程
2014/10/27 NodeJs
基于js实现微信发送好友如何分享到朋友圈、微博
2015/11/30 Javascript
JavaScript实现简单的tab选项卡切换
2016/01/05 Javascript
原生js仿淘宝网商品放大镜效果
2017/02/28 Javascript
微信小程序实现滑动删除效果
2017/05/19 Javascript
JS常见DOM节点操作示例【创建 ,插入,删除,复制,查找】
2018/05/14 Javascript
微信小程序页面间值传递的两种方法
2018/11/26 Javascript
Nginx设置为Node.js的前端服务器方法总结
2019/03/27 Javascript
vue进入页面时不在顶部,检测滚动返回顶部按钮问题及解决方法
2019/10/30 Javascript
微信内置开发 iOS修改键盘换行为搜索的解决方案
2019/11/06 Javascript
[03:09]显微镜下的DOTA2第一期——带你走进华丽的DOTA2世界
2014/06/20 DOTA
python使用Berkeley DB数据库实例
2014/09/26 Python
Python读取Excel一列并计算所有对象出现次数的方法
2020/09/04 Python
美国单身专业人士在线约会网站:EliteSingles
2019/03/19 全球购物
人力管理专业毕业生求职信
2014/02/27 职场文书
2014年端午节活动方案
2014/03/11 职场文书
六个一活动实施方案
2014/03/21 职场文书
经典团队口号
2014/06/06 职场文书
我的中国梦口号
2014/06/16 职场文书
企业介绍信范文
2015/01/30 职场文书
入党转正介绍人意见
2015/06/03 职场文书
军训结束新闻稿
2015/07/17 职场文书
百年校庆感言
2015/08/01 职场文书
助学金申请书该怎么写?
2019/07/16 职场文书
导游词之安徽九华山
2019/09/18 职场文书
深度学习小工程练习之垃圾分类详解
2021/04/14 Python