Python实现压缩与解压gzip大文件的方法
作者:RQSLT 发布时间:2021-10-13 19:39:41
标签: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程序设计有所帮助。


猜你喜欢
- 一、意义:当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(硬件故障、网络故障、进程故障和系统故障)影响数
- eval(String) 函数可计算某个字符串,并执行其中的的 JavaScript 代码。返回值通过计算 string 得到的值(如果有的
- 示例1我们将要请求五个不同的url:单线程import timeimport urllib2defget_responses(): &nbs
- 在跨业务、跨网站发送数据或者业务升级的时候,我们有的时候需要指定发送数据的编码方式,比如页面是utf-8编码的,而发送出去的数据却是GB23
- <span class="up-btn" id="selectFile">请选择文件&l
- lambda 函数Python 支持一种有趣的语法,它允许你快速定义单行的最小函数。这些叫做 lambda 的函数,是从 Lisp 借用来的
- 考察对于知识的理解,除了实际的代码运用,还有一种方法就是问答类的题型。不同于普通的概念叙述,小编认为即使是面试题也会带有一些数学题目的影响,
- mysql表索引被破坏的问题及解决下午上班,惊闻我的dedecms的网站出问题了,访问一看,果然全屏报错,检查mysql日志,错误信息为:
- 一:crypto库安装pycrypto,pycryptodome是crypto第三方库,pycrypto已经停止更新三年了,所以不建议安装这
- 最近游戏项目在多个国家上线,每个国家都对应两份儿svn目录(一份是本地策划目录,一份是线上目录)。于是乎维护变得很烦躁。需要先更新本地策划s
- 前几天有位微信读者问我一个爬虫的问题,就是在爬去百度贴吧首页的热门动态下面的图片的时候,爬取的图片总是爬取不完整,比首页看到的少。原因他也大
- 在使用Celery统计每日访问数量的时候,发现一个任务会同时执行两次,发现同一时间内(1s内)竟然同时发送了两次任务,也就是同时产生了两个w
- 前言我是栗子——专为小白准备《Python从入门到实战》内容。这不是上一期刚讲完循环判断,还给大家出了很多新手的题目,边学边练习才有效果嘛。
- 似乎有一段时间没有更新博客了,这里就写点小功能,轻松获得电脑任意路径下的文件及文件夹,并将其写入word,以下是主要代码:**import
- 今天我们用python和python的工具包pygame来编写一个贪吃蛇的小游戏贪吃蛇游戏功能介绍贪吃蛇的游戏规则如下:通过上下左右键或者W
- Python 定义了全局变量的特性,使用global 关键字修饰global key_word但是他的一大缺陷就是只能本module 中也就
- 熟悉SQL SERVER 2000的数据库管理员都知道,其DTS可以进行数据的导入导出,其实,我们也可以使用Transa
- 如下所示:f = open('./val.txt')lines = f.readlines() #整行读取f.close()
- 1. 什么是链表链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表
- 1、Pylint是什么pylint是一个Python源代码中查找bug的工具,能找出错误,和代码规范的运行。也就是你的代码有Error错误的