美文网首页
python的gzip解压缩文件

python的gzip解压缩文件

作者: Chaweys | 来源:发表于2021-06-28 11:45 被阅读0次

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

相关文章

网友评论

      本文标题:python的gzip解压缩文件

      本文链接:https://www.haomeiwen.com/subject/yedqultx.html