import gzip
def gzip_str():
"""
:return: 压缩二进制字符test_data
"""
test_data=b'test gizp data compress'
#gzip.compress()压缩二进制字符,compresslevel表示压缩级别,0-9,0表示不压缩
gzip_data=gzip.compress(test_data,compresslevel=3)
#gzip.decompress()解压缩
unzip_data=gzip.decompress(gzip_data)
print(gzip_data)
print(unzip_data)
def gzip_file(filename):
"""
:param filename: 待压缩的文件名
:return:
"""
gz_filename=filename+'.tgz' #压缩后文件名
try:
f_ungz=open(filename,'rb') #打开待压缩文件,生成文件对象,注意二进制读取
f_gz=gzip.open(gz_filename,'wb') #打开压缩文件,生成文件对象,注意二进制写
f_gz.writelines(f_ungz) #将打开待压缩文件对象写入到压缩文件对象流
except Exception as e:
print('文件压缩失败')
finally:
f_ungz.close()
f_gz.close()
print('压缩成功')
def ungzip_file(gz_filename):
"""
:param gz_filename: 待解压的文件名
:return:
"""
#由压缩文件获取解压后文件名
ungz_filename=gz_filename.replace('.tgz','').replace('.tar.gz','')
try:
f_gz=gzip.open(gz_filename,'rb') #打开压缩文件生成文件对象,注意二进制读取
f_ungz=open(ungz_filename,'wb') #打开普通文件生成文件对象,注意二进制写
f_ungz.writelines(f_gz) #将打开的压缩文件对象写入到普通文件对象流
except Exception as e:
print('文件解压失败')
finally:
f_ungz.close()
f_gz.close()
print("文件解压成功")
if __name__ == '__main__':
# gzip_file('py01.py')
ungzip_file('py011.py.tgz')
解压gzip的压缩并加密后的字符串
import gzip
import base64
def ungzipData(strData):
unzip_data = gzip.decompress(base64.b64decode(strData)).decode("utf8")
print(unzip_data)
strData = 'H4sIAAAAAAAA//NIzcnJVwjPL8pJAQBWsRdKCwAAAA=='
ungzipData(strData)
#结果:Hello World
网友评论