python 的 tarfile 标准库提供了 tar 命令所提供的功能 。
读取压缩包文件
# 打开压缩包获取压缩包里面的文件
import tarfile
tarfile.open('tarfile.tar') as t:
for member_info in t.getmembers():
print(member_info.name)
# tarfile 中常用的函数有
tarfile.getnames() # 获取tar包文件列表
tarfile.extract(pwd) # 提取单个文件
tarfile.extractall(pwd) # 提取所有文件
#读取gizp算法压缩的tar包
with tarfile.open('tarfile.tar', mode='r:gz') as out:
创建压缩包
import tarfile
with tarfile.open('tarfile.tar',mode='w') as out: # 创建一个空的 tarfile.tar 文件
out.add('README.txt') # 往压缩包里面添加文件
# 创建一个bzip2算法压缩的压缩包
with tarfile.open('tarfile.tar', mode='w:bz2') as out:
zipfile 创建和读取zip压缩包
# 读取zip
import zipfile
zip = zipfile.zipfile('example.zip')
zip.namelist() # 获取所有文件和文件夹的字符串列表
zip.extract(pwd) # 提取单个文件
zip.extractall(pwd) # 提取所有文件
# 创建zip
import zipfile
newZip = zipfile.ZipFile('new.zip','w')
newZip.write('spam.txt')
newZip.close()
#用命令行创建zip包,参数: -l 文件列表、 -c 创建zip、 -e 提取zip、 -t 验证是否是zip
python -m zipfile -c zip名称 文件名[ 文件名][ 文件名]
# python -m zipfile -c newZip a.txt b.txt c.txt
python -m zipfile -e zip名称 解压到目录名称
shutil 模块压缩文件
shutil.get_archive_formats() # 查看支持的压缩格式
shutil.make_archive('backup', 'gztar', dir) # 创建 backuo.tar.gz 格式压缩包, dir 指定压缩目录
shutil.make_archive('backup', 'zip', dir) # 创建 backuo.zip 格式压缩包, dir 指定压缩目录
shutil.unpack_archive('backup.tar.gz',unpackdir) # 解压到 unpackdir 目录下