Python读取与创建压缩包

注:部分内容来自书籍或者网络,如有侵权,请联系删除。

一、使用tarfile库读取与创建压缩包

1.创建tar包

#以写的模式打开tar包得到tarfile对象,再使用对象的add方法将文件添加到tar包中
import tarfile
with tarfile.open('file.tar',mode='w') as out:
out.add('test.txt')

2.创建压缩包

tarfile的open函数,以“打开模式:压缩算法”的形式使用。

读取一个用gzip算法压缩的包

with tarfile.open('file.tar',mode='r:gz') as out:

创建一个用bzip2算法压缩的包

with tarfile.open('file.tar',mode='w:bz2') as out:

二、使用zipfile创建和读取压缩包

zipfile有一个Zipfile对象,使其得到的对象去读取压缩包的文件。

Zip常用的方法:

namelist:返回zip文件中的所有文件和文件夹的字符串列表

extract:从zip包中提取单个文件

extractall:从zip包中提取所有文件

1.读取zip包

import zipfile
test_zip = zipfile.Zipfile('test.zip')
test_zip.namelist()

2.创建zip包

import zipfile
test_zip = zipfile.Zipfile('test.zip')
test_zip.write('test.txt')
test_zip.close()

3.使用命令行创建zip压缩包

zipfile的命令行参数:

-l:显示zip压缩包中的文件列表

-c:创建zip压缩包

-e:提取zip压缩包

-t:验证文件是否是一个有效的zip格式压缩包

python -m zipfile -c test.zip dir/
python -m zipfile -e test.zip target-dir/

三、使用shutil创建压缩包

1.使用make_archive函数创建压缩包,此函数有多个参数,base_name和formate是必传参数,root_dir指定创建压缩包的目录,默认是当前目录,非必传。

base_name指定压缩包名称;formate指定压缩包格式,它的取值只能是get_archive_formats()输入的结果,如下:

>>> import shutil
>>> shutil.get_archive_formats()
[('bztar', "bzip2'ed tar-file"), ('gztar', "gzip'ed tar-file"), ('tar', 'uncompressed tar file'), ('xztar', "xz'ed tar-file"), ('zip', 'ZIP file')]
>>>

2.Python2中没有shutil的解压函数,Python3中有一个unpack_archive解压函数。packname为压缩包名称,dirname为解压目录,formate指定压缩包格式,一般不需要指定,shutil能够根据压缩包扩展名确定格式。

shutil.unpack_archive(packname,dirname,formate)


「 文章如果对你有帮助,请点个赞哦^^ 」 

1+