gzip --- 解压和压缩,gz和tgz格式的文件

资料来源:https://www.cnblogs.com/eliwang/p/14591861.html

  • 此模块提供的简单接口帮助用户压缩和解压缩文件,功能类似于GNU 应用程序gzip 和gunzip。
  • 数据压缩由zlib 模块提供。

一、数据压缩与解压缩

压缩

gzip.compress(data)

  • data:需要压缩的bytes-like类型数据
  • compresslevel参数:可选,用数字0-9表示压缩级别,默认最高压缩级别9,0表示不压缩

解压缩

gzip.decompress(data)

示例:

import gzip

test_data = b'gzip test data'
gzip_data = gzip.compress(test_data) # 压缩数据
ungz_data = gzip.decompress(gzip_data) #解压缩数据
print(gzip_data) #输出b'\x1f\x8b\x08\x00\xddOa`\x02\xffK\xaf\xca,P(I-.QHI,I\x04\x00*\xfb\x85\x89\x0e\x00\x00\x00'
print(ungz_data) #输出b'gzip test data',和test_data一致

二、文件压缩与解压缩

gzip.open( filename, mode=“rb”)

压缩文件打开后,拥有普通文件对象一样的方法,如read、readline、readlines、write、writelines等。
compresslevel参数:可选
读取内容,可以获得解压缩后的数据
写入内容,能够完成对数据的压缩

gzip.GzipFile()

初始化对象的方法__init__:(self, filename=None, mode=None,compresslevel=_COMPRESS_LEVEL_BEST, fileobj=None, mtime=None)
用法与gzip.open()类似,可传入文件名或文件对象

#coding=utf-8
import gzip

def gz(filename):
    '''压缩文件'''

    gz_filename = filename + '.tgz' #压缩后文件名,也可以应用于格式gz
    f_ungz = open(filename,'rb') # 打开未压缩文件对象
    f_gz = gzip.open(gz_filename,'wb') # 使用open函数创建压缩文件对象
    # f_gz = gzip.GzipFile(gz_filename,'wb') 使用GzipFile类创建压缩文件对象
    f_gz.writelines(f_ungz) #写入压缩内容
    f_ungz.close()
    f_gz.close()

def ungz(gz_filename):
    '''解压缩文件'''

    ungz_filename = gz_filename.replace('.tgz','').replace('.tar.gz','')# 解压缩后文件名
    f_gz = gzip.GzipFile(gz_filename)#使用GzipFile类创建压缩文件对象
    # f_gz = gzip.open(gz_filename) 使用open函数打开压缩文件对象
    f_ungz = open(ungz_filename,'wb') #新建未压缩文件对象
    f_ungz.writelines(f_gz) #写入解压缩后的文件内容
    f_ungz.close()
    f_gz.close()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值