首页 > 其他分享 >tarfile压缩模块

tarfile压缩模块

时间:2024-03-07 17:35:50浏览次数:27  
标签:fp utf tar 压缩 tarfile add 模块 tf

tarfile压缩模块

创建文件

import tarfile
"""
	此过程只是创建压缩包 并不打包数据
"""
# 创建压缩包
fp = tarfile.open("ceshi.tar","w",encoding="utf-8")
# 写入文件
"""add(路径,别名)"""
fp.add("2","2tmp")
fp.add("lianxi2","lianxi")
# close file
fp.close()

压缩文件

gz算法

import tarfile
"""
	可以直接通过tar算法打包压缩
"""
# 创建压缩包
fp = tarfile.open("ceshi1.tar.gz","w",encoding="utf-8")
# 写入文件
fp.add("2","2tmp")
fp.add("lianxi2","lianxi")
# close file
fp.close()

bz算法

import tarfile
"""
	可以直接通过tar算法打包压缩
"""
# 创建压缩包
fp = tarfile.open("ceshi1.tar.bz2","w:bz2",encoding="utf-8")
# 写入文件
fp.add("2","2tmp")
fp.add("lianxi2","lianxi")
# close file
fp.close()

解压文件

tf = tarfile.open("ceshi0930_1.tar.gz","r",encoding="utf-8")
""" extract(文件,路径) 解压单个文件"""
tf.extract("chown","ceshi0930_1")
""" extract(路径) 解压所有文件"""
tf.extractall("ceshi0930_1_2")
tf.close()

追加文件

tf = tarfile.open("ceshi0930_0.tar","a",encoding="utf-8")
tf.add("/bin/mkdir","mkdir")
tf.close()

with改造

with tarfile.open("ceshi0930_0.tar","a",encoding="utf-8") as tf:
	tf.add("/bin/mkdir","mkdir234")

查看文件

with tarfile.open("ceshi0930_0.tar","r",encoding="utf-8") as tf:
	lst = tf.getnames()  # return 文件 list
	print(lst)

追加文件改造

import tarfile
import os
import shutil
"""
	可以直接通过tar算法打包压缩
"""
with tarfile.open("2.tar.gz","w:gz",encoding="utf-8") as tf:
	tf.add("1.txt")
	tf.add("2.txt")

"""
	2.tar.gz 文件生成
"""
fileSize = os.path.getsize("2.tar.gz")
print(fileSize) # out 3069

"""
1.把已经压缩的包进行解压
2.把要追加的内容放进去
3.过滤文件重新压缩
"""

# 记录压缩包所在的绝对路径
pathvar1 = os.path.abspath("2.tar.gz")
# 要解压到哪个文件夹中(绝对路径)
pathvar2 = os.path.join(os.getcwd(),"tmp")
print(pathvar1)
print(pathvar2)

# 1.把已经压缩的包进行解压
with tarfile.open(pathvar1,"r",encoding="utf-8") as tf:
	tf.extractall(pathvar2) # 解压的位置

# 2.把要追加的内容放进去
shutil.copy("3.txt" , pathvar2)

# 3.过滤文件重新压缩

# 查看文件夹当中有什么文件
lst = os.listdir(pathvar2)
print(lst) # ['1.txt', '2.txt', '3.txt']

with tarfile.open(pathvar1,"w:bz2",encoding="utf-8") as tf:
	for i in lst:
		if i != "1.txt":
			# 拼凑成所需文件的完整的绝对路径
			abs_path = os.path.join(pathvar2,i)
			# 剩下的都要压缩
			"""add(路径,别名)"""
			tf.add(abs_path,i)
"""
	C:\Users\wbcde\Desktop\pythonProject1\测试\tmp\2.txt
	C:\Users\wbcde\Desktop\pythonProject1\测试\tmp\3.txt
"""

标签:fp,utf,tar,压缩,tarfile,add,模块,tf
From: https://www.cnblogs.com/wbcde116/p/18059381

相关文章

  • 如何将PDF文件无损压缩到更小?
    有时候我们为了提高文件传输速度,会适当压缩一下PDF文件大小,但很多朋友不知道怎么将PDF文件压缩的小一点,考虑到下载安装软件比较复杂还只能电脑使用,下面就给大家分享二个在线就能PDF压缩得方法,一起来了解下吧。方法一:ilovepdf中文版ilovepdf中文版是一款专业的在线PDF转换工具,网......
  • 六.模块导入和输出格式化
    1.模块导入2.输出格式美化 1.模块导入>>>导入:import文件名调用:文件名.方法名(参数)>>>导入:from文件名import方法名调用:方法名(参数)>>>导入文件内所有方法:from文件名import*  >>>导入:import多层包名.文件名调用:多层包名.文件名.方法名(参数)多层包......
  • androi studio bitmap 压缩后 图片方向异常
    Android使用Camera2拍照后,获得 byte[]data,随后使用 BitmapFactory.decodeByteArray  压缩导致图片方向异常 /**避免出现方向异常**/publicstaticMatrixgetMatrix(byte[]data){ if(Build.VERSION.SDK_INT>=24){ ExifInterfaceexif=null; tr......
  • OS的Path模块
    OS的Path模块basename#返回文件名部分pathvar="/home/wangwen/mywork/ceshi.py"pathvar=__file__res=os.path.basename(pathvar)print(res)#outceshi.pydirname#返回路径部分pathvar="/home/wangwen/mywork/ceshi.py"pathvar=__file__res......
  • flask-cache模块的使用
    安装模块pip3installFlask-Caching使用方式fromflaskimportFlaskfromflask_cachingimportCacheconfig={"DEBUG":True,#someFlaskspecificconfigs"CACHE_TYPE":"SimpleCache",#Flask-Cachingrelatedconfigs......
  • Gzip压缩
    目的缩短响应时间做法情况一|springboot服务开启gzip压缩功能#开启Gzip压缩#server.compression.enabled=true#要压缩的类型#server.compression.mime-types=application/javascript,application/x-javascript,text/css,application/json,application/xml,text/html,text/......
  • wtforms模块的使用
    介绍#类似django中的forms组件#分离项目几乎不用,了解使用即可#作用1做数据校验2渲染模板3渲染错误信息使用方式py文件中fromflaskimportFlask,render_template,request,redirectfromwtformsimportFormfromwtforms.fieldsimportsimplefromwtform......
  • 技术干货 | 英码嵌入式IVP92x开发主板上电启动及各模块测试详细教程(附工具)
    IVP92x是一款基于英码嵌入式低照度全彩视频处理模组SOM928设计的开发主板,IVP92x主板具备多路智能视觉分析(目标识别/运动跟踪/周界防范等)能力,支持[email protected]/H.264多码流编解码,同时支持智能降噪、全景拼接以及双目深度处理;除此之外,还设计了丰富的外围接口,满足无人机、智能摄......
  • 蓝牙体脂秤方案测脂肪模块PCB设计
    蓝牙体脂秤采用的就是BIA生物电阻抗技术,用户仅需1次测量,就能知道身体的脂肪率,水分率,基础代谢率,肌肉量,骨量,蛋白质,BMI,体重,身体的得分,年龄等十一项身体的数据,更加全面的了解自己的身体情况,这样就能够及时的做出针对性的调节和改善。如果脂肪过高,蓝牙体脂秤会提醒用户多运动,多锻炼......
  • 深入解析ASP.NET Core MVC的模块化设计[下篇]
    ASP.NETCoreMVC的“模块化”设计使我们可以构成应用的基本单元Controller定义在任意的模块(程序集)中,并在运行时动态加载和卸载。《设计篇》介绍了这种为“飞行中的飞机加油”的方案的实现原理?本篇我们将演示将介绍“分散定义Controller”的N种实现方案。源代码从这里下载。一、标......