使用python展开tar包

liftword2个月前 (03-06)技术文章12

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

pyinstaller打包python程序高级技巧

pyinstaller是最常用的python程序打包成可执行程序(exe)的工具,这篇文章将介绍几个pyinstaller打包可能遇到的问题及其解决方法。安装pyinstaller的安装很简单,直接p...

Python exe 文件反编译为 Python 脚本

前言将 Python 可执行文件(.exe)反编译为 Python 脚本是一项有趣的技术挑战,可以帮助我们理解程序的工作原理,以及可能包含的逻辑和算法。虽然反编译不是一项简单的任务,并且对于使用各种保...

必知必会!10个Python超实用技巧

技巧一:快速赋值与解包在 Python 中,通过列表给多个变量赋值是一项非常实用的技巧。假设我们有一个包含三个元素的列表[1, 2, 3],想要将这三个元素分别赋值给三个变量a、b、c,只需简单地写成...

python散装笔记——81: PyPI 软件包管理器: pip 模块的使用

有时,您可能需要在 python 中使用 pip 包管理器,例如,当某些导入可能引发 ImportError 时,您需要处理异常。如果在 Windows 上解压缩,Python_root/Script...