使用Python管理压缩包
使用tarfile库读取与创建tar包
Linux系统下的tar命令仅仅是将多个文件或目录打包成一个文件,并没有进行压缩。tarfile模块提供了tar命令的功能,同时还可以创建压缩的tar包
- 类方法tarfile.open(<文件名>,<打开模式>) - 打开一个tar包文件,返回一个tarfile对象
- 对象方法tarfile.getmembers() - 返回包含tar包的Tarinfo的对象列表
- 对象方法tarfile.getnames() - 获取tar包中的文件名列表
- 对象方法tarfile.extract() - 提取单个文件
- 对象方法tarfile.extractall() - 提取所有文件
-
对象方法tarfile.add() - 添加文件到tar包
代码示例:
截屏2021-06-16 下午10.12.13.png
使用tarfile库读取与创建压缩包
使用tarfile创建和读取压缩包非常简单,只要在打开文件时指定压缩算法即可。对于tarfile的open函数,以“打开模式:压缩算法”的形式打开即可。
代码示例:
# 读取一个用gzip算法压缩的tar包
with tarfile.open('tarfile_add.tar',mode='r:gz') as out:
# 创建一个用bzip2算法压缩的tar包
with tarfile.open('tarfile_add.tar',mode='w:bz2') as out:
使用zipfile库创建和读取zip压缩包
- 类方法zipfile.ZipFile(<文件名>) - 打开zip压缩包并返回一个ZipFile对象
- 对象方法namelist() - 返回zip文件中包含的所有文件和文件夹的字符串列表
- 对象方法extract() - 从zip文件中提取单个文件
- 对象方法extractall() - 从zip文件中提取所有文件
- 对象方法write() - 配合zipfile.ZipFile()以写模式打开压缩文件,再添加文件到压缩包
- 对象方法close() - 关闭压缩文件
使用shutil创建和读取压缩包
通过get_archive_formats函数获取shutil支持的格式:
import shutil
shutil.get_archive_formats()
- 类方法shutil.make_archive(<base_name>,<format>,<root_dir>) - 创建压缩包,base_name指定压缩包的格式;format指定压缩包的格式,格式只能是get_archive_formats函数列出的格式;root_dir指定压缩文件存储目录,默认为当前目录。
python2中shutil模块只有创建压缩包的make_archive()方法,没有解压压缩包的功能。python3中有unpack_archive()函数提供解压的功能
shutil.unpack_archive(filename,extract_dir=None,format=None)
#filename-压缩包名称; extract_dir-解压目录; format-压缩包格式









网友评论