对于一些分解后的元素,我们也是有重新归类的需要。那么我们把解包的恢复过程,叫做压包。这里要用到zip函数的方法,对元素重新进行打包处理,在之前的学习中我们已经对zip函数有所接触。下面我们就python压包的概念、方法进行介绍,然后带来相关的实例使用。
1、概念
压包是解包的逆过程,用zip函数实现。
2、方法
(1)zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象(Python3)。
(2)如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用*号操作符,可以将元组解压为列表。
3、实例
先是zip函数将a b压包成为一个可迭代对象,对可迭代对象的每一个元素((‘a', 1))进行解包(i, j = (‘a', 1)),此时就可以分别调用i j变量进行计算。
1
2
3
4
5
6
7
8
|
>>> a = [ 0 , 1 , 2 ] >>> b = [ 1 , 2 , 3 ] >>> for i, j in zip (a, b): ... print (i + j) ... 1 3 5 |
知识点扩展
1.Python--gzip压缩ZIP文件:
1
2
3
4
5
6
7
8
9
10
|
import gzip f_src = open ( "data.txt" , "rb" ) #打开文件 f_tar = gzip. open ( "data.txt.gz" , "wb" ) #创建压缩文件对象 f_tar.writelines(f_src) f_tar.close() f_src.close() import gzip g = gzip.GzipFile(filename = " ", mode=" wb", compresslevel = 9 , fileobj = open ( 'sitemap.log.gz' , 'wb' )) g.write( open ( 'd:\\test\\sitemap.xml' ).read()) g.close() |
其中,filename参数是压缩文件内文件的名字,为空也可以,不修改。fileobj是生成的压缩文件对象,它的路径名称等。最后是把文件写入gzip文件中去,再关闭操作连接。
2.Python--gzip解压ZIP文件:
1
2
3
4
5
6
7
8
|
import gzip f = gzip. open ( "data.txt.gz" , 'rb' ) #打开压缩文件对象 f_out = open ( "data.txt" , "w" ) #打开解压后内容保存的文件 file_content = f.read() #读取解压后文件内容 f_out.write(file_content.decode( "utf-8" )) #写入新文件当中 print (file_content) #打印读取内容 f.close() f_out.close() |
1
2
|
g = gzip.GzipFile(mode = "rb" , fileobj = open ( 'd:\\test\\sitemap.log.gz' , 'rb' )) open (r "d:\\haha.xml" , "wb" ).write(g.read()) |
使用的时候注意,函数方法的大小写一点要看仔细,如果gzip文件是这种形式的:*.tar.gz,证明先是由tar命令压缩后,后再由 gzip压缩的,需要先用解压缩tar文件,再用gzip模块解压缩。其实,现在很多网页为了提高浏览器端用户的访问速度,和搜索引擎爬虫抓取的速度,都在使用gzip压缩。
到此这篇关于python压包的概念及实例详解的文章就介绍到这了,更多相关python压包是什么内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://www.py.cn/jishu/gaoji/23791.html