使用python展开tar包

liftword4个月前 (03-06)技术文章36

类Unix的系统,打包文件经常使用的就是tar包,结合zip工具,可以方便的打包并解压。

在python的标准库里面有tarfile库,可以方便实现生成了展开tar包。使用这个库最大的好处,可能就在于不需要使用外部的程序调用来实现展开tar包。要知道subprocess库的使用看似简单,但是真要处理异常,还是比较麻烦的事。

tarfile.open()函数可以返回一个TarFile对象,同样实现了ContextManager接口,你可以使用with语句。

首先可以使用list()方法,打印输出包里面的内容。

对于程序来说,这个基本没有什么用,但是用于调试查看还是不错的。


接着是提取文件,extractall()可以提取所有文件到指定文件夹:


以下代码提取所有文件到extracted子目录

TarFile实现了next()方法,也就是可以使用for in语句进行遍历,返回的对象是TarInfo类型:


当然也可以解压单个文件,使用extract()方法,可以传入一个TarInfo实例,也可以传入路径的字符串。下面代码遍历传入TarInfo,展开到extracted2目录。后面一部分实例使用字符串,展开到extracted3目录。

extract函数有个缺点,就是没有办法用另一个文件名进行展开,只能使用extractfile返回的内容,写入另外一个已打开的文件,希望以后能直接提供这个功能。

相关文章

在 Python 中解压元组、列表和其他序列

Python 对解包序列的支持非常有用。拆包,也称为“多重赋值”或“迭代拆包”,是指在单个步骤中将序列中的值分配给多个变量的过程。此功能适用于元组、列表和其他可迭代序列。什么是可迭代拆包?考虑这个元组...

使用 Python 让旧照片修复清晰

翻开家里的的相片册,可以看到每张照片都是那么的弥足珍贵,特别是很久以前的照片,都是美好的回忆,还有那些年错过的场景,都被记录下来了,不过可惜的是,随着时间的流逝,照片可能泛黄,出现划痕,画质损失等等,...

【Python语音识别系列】实现m4a到wav语音格式的批量转化(源码)

这是我的第388篇原创文章。一、引言在语音识别和音频处理领域,我们经常需要对音频文件格式进行转换,例如将 M4A 格式转为更常见的 WAV 格式。本文将基于pydub这个库批量实现m4a到wav语音格...

Python shutil 库详解

1. shutil库概述简介shutil是Python中的一个标准库,它提供了一系列对文件和文件集合的高级操作。“shutil”这个名字是“shell utilities”(外壳工具)的缩写,它的功能...

Python自动化打包

最近需要打包一二十个同报名的Android apk用来测试,但是版本不一样,如果手动的去打包一个个的太麻烦了,于是乎想着用Python写一个脚本用来打包这些apk。Python执行打包命令首先需要Py...

实战 | 如何用 Python 自动化监控文件夹完成服务部署

作者:星安果来源:AirPython最近在部署前端项目的时候,需要先将前端项目压缩包通过堡垒机上传到应用服务器的 /tmp 目录下,然后进入应用服务器中,使用 mv 命令将压缩文件移动到 Nginx...