各位用户为了找寻关于Python实现压缩与解压gzip大文件的方法的资料费劲了很多周折。这里教程网为您整理了关于Python实现压缩与解压gzip大文件的方法的相关资料,仅供查阅,以下为您介绍关于Python实现压缩与解压gzip大文件的方法的详细内容
本文实例讲述了Python实现压缩与解压gzip大文件的方法。分享给大家供大家参考,具体如下:
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30#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:tmpsrc.txt'
dst
=
r
'D:tmpsrc.txt.gz'
ori
=
r
'D:tmpori.txt'
gZipFile(src, dst)
print
(
'gZipFile over!'
)
gunZipFile(dst, ori)
print
(
'gunZipFile over!'
)
也可以简单地封装成一个类:
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21class
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程序设计有所帮助。