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

本文实例讲述了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文本文件操作技巧汇总》、《Python URL操作技巧总结》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

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

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索python
, 解压
, 压缩
gzip大文件
网页gzip在线解压缩、在线gzip解压缩、http gzip 如何解压缩、gzip解压缩、js gzip 解压缩字符串,以便于您获取更多的相关知识。

时间: 2024-09-04 03:24:00

Python实现压缩与解压gzip大文件的方法_python的相关文章

python用模块zlib压缩与解压字符串和文件的方法_python

python中zlib模块是用来压缩或者解压缩数据,以便保存和传输.它是其他压缩工具的基础.下面来一起看看python用模块zlib压缩与解压字符串和文件的方法.话不多说,直接来看示例代码. 例子1:压缩与解压字符串 import zlib message = 'abcd1234' compressed = zlib.compress(message) decompressed = zlib.decompress(compressed) print 'original:', repr(messa

python zlib压缩与解压字符串代码

使用zlib.compress可以压缩字符串.使用zlib.decompress可以解压字符串.如下  代码如下 复制代码 #coding=utf-8 import zlib s = "hello word, 00000000000000000000000000000000" print len(s) c = zlib.compress(s) print len(c) d =  zlib.decompress(c) print d   示范代码2:  代码如下 复制代码 import

chunked-httpclient 解压 gzip问题 求大神解答

问题描述 httpclient 解压 gzip问题 求大神解答 httpclient 在获取response 时 格式 是 gzip 的 而且还是Transfer-Encoding:chunked这个标签指定了 一直没法获取到相应信息 不是 解压 失败就是不能解压,有没有知道的解答下 解决方案 Transfer-Encoding:chunked先检查下传输有没有问题. 解决方案二: 用fiddler调试.

大文件(1g左右)-压缩、解压 大文件 C#

问题描述 压缩.解压 大文件 C# 如何用c#写一个压缩.解压的文件 文件大小为1G左右.我用 ICSharpCode.SharpZipLib.Zip;这个组件,只能实现小文件的压缩,不能实现大文件的压缩,一压缩就报错.哪位有什么好的方法实现大文件压缩呢. 解决方案 C# 文件压缩与解压c#解压.压缩文件C#下文件的压缩与解压

python通过zlib实现压缩与解压字符串的方法_python

本文实例讲述了python通过zlib实现压缩与解压字符串的方法.分享给大家供大家参考.具体实现方法如下: 使用zlib.compress可以压缩字符串.使用zlib.decompress可以解压字符串.如下 复制代码 代码如下: #coding=utf-8 import zlib s = "hello word, 00000000000000000000000000000000" print len(s) c = zlib.compress(s) print len(c) d = 

Linux下常见文件格式的压缩、解压小结

大致总结了一下linux下各种格式的压缩包的压缩.解压方法.但是部分方法我没有用到,也就不全,希望大家帮我补充,我们将随时修改完善,谢谢! .tar 解包: tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!) --------------------------------------------- .gz 解压1:gunzip FileName.gz 解压2:gzip -d FileName.gz 压缩:g

Linux操作系统中,*.zip、*.tar、*.tar.gz、*.tar.bz2、*.tar.xz、*.jar、*.7z等格式的压缩与解压

zip格式 压缩: zip -r [目标文件名].zip [原文件/目录名] 解压: unzip [原文件名].zip 1 2 1 2 注:-r参数代表递归 tar格式(该格式仅仅打包,不压缩) 打包:tar -cvf [目标文件名].tar [原文件名/目录名] 解包:tar -xvf [原文件名].tar 1 2 1 2 注:c参数代表create(创建),x参数代表extract(解包),v参数代表verbose(详细信息),f参数代表filename(文件名),所以f后必须接文件名. t

解决解压tar.gz文件报错gzip: stdin: not in gzip format错误

在解压tar.gz文件的时候报错 [Sun@localhost Downloads]$ tar -zxvf clion-141.351.4.tar.gz   gzip: stdin: not in gzip format tar: Child returned status 1 tar: Error is not recoverable: exiting now 原来原因是这个压缩包没有用gzip格式压缩,所以不用加z指令 [Sun@localhost Downloads]$ tar -xvf

Zip 压缩、解压技术在 HTML5 浏览器中的应用

原文:Zip 压缩.解压技术在 HTML5 浏览器中的应用 JSZip 是一款可以创建.读取.修改 .zip 文件的 javaScript 工具.在 web 应用中,免不了需要从 web 服务器中获取资源,如果可以将所有的资源都合并到一个 .zip 文件中,这时候只需要做一次请求,这样既减少了服务器的压力,同时也可以加快 web 应用的呈现速度. 今天就来探讨下 JSZip 如何与 HT 拓扑应用结合.先来看看这期 Demo 的效果图:   第一步.需要将应用对相关资源打包成 .zip 文件,