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']
本文来自博客园,作者:majic_jie,转载请注明原文链接:https://www.cnblogs.com/majic-jie/articles/17546720.html

浙公网安备 33010602011771号