Code tells all:
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
31
32
33
34
35
36
37
38
39
40
|
#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!'
)
|
也可以简单地封装成一个类:
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
|
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()
|
相关阅读:
2、官方示例
*** walker ***
本文转自walker snapshot博客51CTO博客,原文链接http://blog.51cto.com/walkerqt/1706430如需转载请自行联系原作者
RQSLT