Python压缩解压–gzip
原文链接:http://www.juzicode.com/python-tutorial-zip-unzip-gzip
本文介绍python的gzip模块压缩和解压缩文档,gzip只能对单个文档进行操作。
1、gzip.open() 创建文件实例压缩文件
gzip.open()方法会创建一个GzipFile文件实例,第1个参数filename为gz文件的名称。参数mode为打开文件的模式,支持’r’, ‘rb’, ‘a’, ‘ab’, ‘w’, ‘wb’, ‘x’ or ‘xb’ (二进制方式)或者 ‘rt’, ‘at’, ‘wt’, or ‘xt’(文本模式),缺省为 ‘rb’,一般使用‘rb’读取,‘wb’创建文件。参数compresslevel压缩等级默认为9。
下面这个例子中先用gzip.open()方法的’wb’模式创一个GzipFile文件实例,然后用rb模式从文件中读取数据,再用该文件实例的write()方法写入从文件中读取的数据,最后关闭文件实例:
#juzicode.com / VX:桔子code
import gzip
# 创建GzipFile实例
zf = gzip.open('logo.png.gz', mode = 'wb')
print('type(zf):',type(zf))
data = open('logo.png','rb').read() # 简化描述未关文件
zf.write(data) # 写文件
zf.close() # 关闭
运行结果:
type(zf): <class 'gzip.GzipFile'>
从压缩后的结果可以看到,open()方法创建文件对象时,如果filename入参以gz结尾,压缩文件内部的名称就是gz后缀前面的一部分,比如用log.png.gz作为压缩文档的名称,在压缩文档内部的文件名称就为logo.png。
2、gzip.GzipFile创建文件实例压缩文件
和前面的过程类似,不过创建文件实例用的是 gzip.GzipFile():
#juzicode.com / VX:桔子code
import gzip
# 创建GzipFile实例
zf = gzip.GzipFile('logo2.png.gz', mode = 'wb')
print('type(zf):',type(zf))
data = open('logo.png','rb').read() # 简化描述未关文件
zf.write(data) # 写文件
zf.close() # 关闭
3、gzip.comress()压缩数据后写文件
另外一种方法是用gzip.comress()方法将从文件中读出的数据进行压缩,再将压缩后的数据写入到文件中。
#juzicode.com / VX:桔子code
import gzip
pf = open('logo3.png.gz', 'wb') # open方法创建普通文件对象
data = open('logo.png','rb').read() # 简化描述未关文件
data_comp = gzip.compress(data) # 压缩数据
pf.write(data_comp) # 写文件
pf.close() # 关闭
运行结果:
从压缩文件看该方法和前2种效果是一样的。
下面这种方法更简便、更安全:
import gzip
with open('logo31.png.gz', 'wb') as pw, open('logo.png','rb') as pr:pw.write(gzip.compress(pr.read()) )
4、解压文件
和前述3种生成压缩文件的方法对应,有3种解压gz文件的方式,这时打开文件用mode=’r’:
#juzicode.com / VX:桔子code
import gzip
zip_filename = 'logo.png.gz'
with open('unzip\\logo1.png','wb') as pw:zf = gzip.open(zip_filename, mode = 'rb') pw.write(zf.read()) # 写文件zf.close()with open('unzip\\logo2.png','wb') as pw:zf = gzip.GzipFile(zip_filename, mode = 'rb') pw.write(zf.read()) # 写文件zf.close()with open(zip_filename, 'rb') as pr, open('unzip\\logo3.png','wb') as pw:pw.write(gzip.decompress(pr.read()) )
扩展阅读:
- Python桔子教程
Python压缩解压–gzip相关推荐
- Python压缩解压--lzma
原文链接:http://www.juzicode.com/python-tutorial-zip-unzip-lzma 本文介绍python的lzma模块压缩和解压缩文档,lzma和gzip一样也只能 ...
- Python压缩解压zip,Django下载zip文件
Python压缩解压zip 压缩 import zipfile def convert_zip(zip_path, save_path):'''# zip_path 要压缩文件的路径# save_pa ...
- python 压缩 解压
unrar在Linux机器中对中文的支持有漏洞 class DecompressionModel:def __init__(self):pass@staticmethoddef decompressi ...
- Python加解压文件gzip库操作一文详解
目录 一.gzip GZIP概念 文件格式 二.Python gzip库 gzip.open gzip.GzipFile压缩和解压 gzip.comress()压缩数据 解压数据 第一种 第二种 第三 ...
- python压缩文件tar_python 实现tar文件压缩解压的实例详解
python 实现tar文件压缩解压的实例详解 python 实现tar文件压缩解压的实例详解 压缩文件: import tarfile import os def tar(fname): t = t ...
- python批量解压文件_python 批量解压压缩文件的实例代码
下面给大家介绍python 批量解压压缩文件的实例代码,代码如下所述: #/usr/bin/python#coding=utf-8import os,sys import zipfile open_p ...
- 字符串GZIP压缩解压
c# /// <summary>/// 字符串压缩解压/// </summary>public class Zipper{public static string Compre ...
- linux 如何打包分区文件,Linux基础------文件打包解包---tar命令,文件压缩解压---命令gzip,vim编辑器创建和编辑正文件,磁盘分区/格式化,软/硬链接...
作业一: 1)将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖) cat /etc/passwd /etc/group > /1.txt 2)将用户信息数据库文件和用户 ...
- Ubuntu使用gzip与bzip2与rar和tar压缩解压
目录 1.gzip压缩解压 2.bzip2压缩解压 3.rar压缩解压 tar归档压缩与解压包 1.gzip压缩解压 因为都是系统自带的我们不需要安装: ls 看一下目录当前的文件,创建一个 touc ...
- Linux中使用gzip来压缩/解压 *.gz文件
gzip 是linux中常见的压缩/解压工具,最常见的使用对象是*.gz格式的文件,这里简单介绍下它最常见的用法, GZIP(1) General Commands Manual GZIP(1) NA ...
最新文章
- 选错导师误终身?Nature大调查显示 :全球1/4博士生想换导师
- webservice 简介 跨编程语言 跨操作系统 远程调用技术
- for循环与内置方法详解
- etherpeek nx在网络维护中的应用
- 在Windows 下使用CodeBlocks 自带编译器实现对编译的优化
- Redis—字符串和SDS
- 【clickhouse】clickhouse 如何实现tcp方式发送数据
- 找出符合下图的互联网产品实例
- mysql 8.0以上 新版本账号密码策略修改和密码修改
- opengl 如何加阴影_一步步学OpenGL(23) -《阴影贴图1》
- Elasticsearch-拼音分词/排序
- Openwrt无线中继AP设置教程
- MATLAB神经网络汉字数字字母识别(任何字符,GUI)
- 菏泽一中2021级高考成绩查询入口,2021年菏泽中考各学校录取分数线,历年菏泽中考分数线汇总...
- python 字符串替换_Python中的字符串替换操作示例
- Revit中如何连接消火栓-Revit中快速连接设备
- 我们是如何管理蓝精灵协会 PFP 集合的程序性生成的?
- 《Nginx入门这一篇就够了》
- Golang获取整点的时间戳
- 《A Deep Generative Framework for Paraphrase Generation》论文笔记--摘要、引言