本文实例讲述了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:\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
|
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程序设计有所帮助。