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

作者:RQSLT 时间:2021-10-13 19:39:41 

本文实例讲述了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,压缩,解压
0
投稿

猜你喜欢

  • 浅淡BANNER设计

    2010-09-25 18:37:00
  • Pycharm cannot set up a python SDK问题的原因及解决方法

    2022-12-21 15:05:34
  • JavaScript缓动库

    2009-05-25 12:50:00
  • python学习笔记:字典的使用示例详解

    2022-06-14 16:31:31
  • DBA_2PC_PENDING 介绍

    2009-02-28 10:59:00
  • Python中三个不可思议的返回功能分享

    2021-11-21 07:32:41
  • python 运用Django 开发后台接口的实例

    2021-02-02 00:48:02
  • Python3 列表,数组,矩阵的相互转换的方法示例

    2023-05-30 23:52:19
  • Python pymysql模块安装并操作过程解析

    2024-01-19 16:05:39
  • Python中的defaultdict模块和namedtuple模块的简单入门指南

    2022-01-21 07:10:20
  • 与 Function 和 Object 相关的有趣代码

    2010-05-07 12:29:00
  • Python实战小项目之Mnist手写数字识别

    2023-01-20 23:24:56
  • javascript图片预加载

    2009-08-30 12:47:00
  • 浅谈python的深浅拷贝以及fromkeys的用法

    2023-07-20 04:45:33
  • 基于python实现学生管理系统

    2021-11-24 21:07:48
  • PHP页面中文乱码分析

    2024-05-13 09:23:19
  • Python面向对象程序设计类变量与成员变量、类方法与成员方法用法分析

    2022-08-11 15:43:43
  • SQL Server 2005 Express版企业管理器下载

    2009-10-06 14:54:00
  • MySQL 优化设置步骤

    2024-01-26 16:51:37
  • Python排序搜索基本算法之选择排序实例分析

    2023-10-05 20:01:12
  • asp之家 网络编程 m.aspxhome.com