AI智能
改变未来

python中gzip模块的使用

gzip模块能够直接压缩和解压缩bytes-like类型的数据,同时也能实现对应格式文件的压缩与解压缩

一、数据压缩与解压缩

  • 压缩

    gzip.compress(data)

    data:需要压缩的bytes-like类型数据

  • compresslevel参数:可选,用数字0-9表示压缩级别,默认最高压缩级别9,0表示不压缩
  • 解压缩

      gzip.decompress(data)

  • 示例:

    import gziptest_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-8import gzipdef gz(filename):\'\'\'压缩文件\'\'\'gz_filename = filename + \'.tgz\' #压缩后文件名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) 打赏
    未经允许不得转载:爱站程序员基地 » python中gzip模块的使用