16-4常用模块压缩

一、压缩模块-zipfile

模块名:import zipfile

1、压缩文件

'''
用法
zip_fp=zipfile.ZipFile(file=,mode=,compression=)
file:压缩包文件名
mode:模式
	r:读取一个已经存在的压缩包(默认)
	w:创建一个压缩包
	a:王压缩包里面追加内容
compression:压缩的模式
	ZIP_STORED:只打包,不压缩(默认)
	ZIP_DEFLATED:既打包,又压缩
	
zip_fp.write(file,name)
	file:需要压缩的文件名
	name:在压缩包中显示的名字
'''

import zipfile
zip_fp=zipfile.ZipFile("测试zipfile.zip","w",)

zip_fp.write("图片.png","图片1.png")
zip_fp.write("图片2.png","图片2.png")
#关闭对象,创建文件
zip_fp.close()

2、解压文件

'''
用法:
zip_fp=zipfile.ZipFile(file,mode="r")
	file:需要解压的压缩包名称
	"r":解压模式
	
解压的时候,如果路径不存在会自动创建
zip_fp.extractall(路径)   一次性全部解压
	路径:解压到什么地方
zip_fp.extract(文件名,路径)    解压某一个文件
	文件名:压缩包中需要解压的文件名
	路径:解压到什么地方
	
关闭
zip_fp.close()
'''

zip_fp=zipfile.ZipFile("测试zipfile.zip","r")
zip_fp.extractall("./day17zip")
zip_fp.extract()
zip_fp.close()

3、追加文件

'''
用法:
和添加一样,只不过mode=“a”
'''
zip_fp=zipfile.ZipFile("图片.zip","a",zipfile.ZIP_DEFLATED)
zip_fp.write("test.txt")
zip_fp.close()

'''
也可以使用with用法打开zipfile,可以省略每次手动close()
with zipfile.ZipFile("图片.zip","a",zipfile.ZIP_DEFLATED) as zip_fp:
	zip_fp.write("t1.txt")
'''

with zipfile.ZipFile("图片.zip","a",zipfile.ZIP_DEFLATED) as zip_fp:
	zip_fp.write("t1.txt")

4、查看文件

'''
用法:
使用"r"模式打开压缩包,使用namelist方法查看压缩包中所有文件,返回的是一个列表
'''
with zipfile.ZipFile("图片.zip","r") as zip_fp:
	lst=zip_fp.namelist()
print(lst)
#结果如下:
['图片1.png', '图片2.png', 'test.txt', 't1.txt', 'test.txt']

二、压缩模块-tarfile(后缀为.tar|.tar.gz|.tar.gz2)

模块名:import tarfile

1、压缩文件

'''
用法:
tf=tarfile.open(file,mode,encoding="utf-8")
	file:压缩包名称
	mode:压缩包模式
		1、w  使用tar算法打包(打包,不压缩)
		2、w:gz  使用tar.gz算法压缩(压缩)
		3、w:bz2 只用tar.bz2算法压缩(压缩,官方说法,该算法压缩包体积最小)
    encoding:编码,使用utf-8编码

可以直接在压缩包中写上临时路径
tf.add(文件路径,压缩包中路径)
关闭
tf.close()
'''

with tarfile.open("tarfile.tar.gz","w:gz",encoding="utf-8") as tarfp:
	tarfp.add("图片.png","/tmp/图片.png")
	tarfp.add("图片2.png")

2、解压文件

'''
用法:
tarfp=tarfile.open(file,"r",encoding="utf-8")
#全部解压
tarfp.extractall(路径)
	路径:解压的路径,如果路径不存在会自动创建
tarfp.extract(文件,路径)
	文件:指定的压缩包中文件名
	路径:系统的目录
tarfp.close()
'''

with tarfile.open("tarfile.tar.gz","r",encoding="utf-8") as tarobj:
	tarobj.extractall("./day17zip/tarfile")

3、追加文件

'''
用法:
注意:只能对tar打包(w模式)的文件进行追加,不能对tar.gz压缩包(w:gz模式)和tar.bz2压缩包(w:bz2模式)进行追加。不能对已经压缩好的进行追加。

with tarfile.open(file,"a",encoding="utf-8") as tarfp:
	tarfp.add("测试.txt")
'''

with tarfile.open(file,"a",encoding="utf-8") as tarfp:
	tarfp.add("测试.txt")

4、查看文件

'''
用法:
使用“r"模式打开,用getnames方法获文件,返回一个列表
'''
with tarfile.open("tarfile.tar.gz","r",encoding="utf-8") as tarobj:
	lst=tarobj.getnames()
print(lst)
#结果如下:
['tmp/图片.png', '图片2.png']
posted @ 2023-07-12 09:48  majic_jie  阅读(15)  评论(0)    收藏  举报