在做业务中有时候会遇到批量文件下载的功能,要批量下载需先将文件进行打包,这里介绍常用的 zip
和 tar
打包与解包
Python 中内置了打包的库,我们直接使用即可
zip
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
import zipfile
# zip 打包
z = zipfile.ZipFile('black.zip', 'w') # 创建一个空包
z.write('./image-1.jpg')
z.write('./image-2.png')
z.close()
# zip 解包
z = zipfile.ZipFile('black.zip', 'r')
zip_list = z.namelist() # 包里所有文件列表
z.extractall() # 解压所有文件
z.extract('image-1.jpg') # 解压指定文件
z.close()
tar
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
import tarfile
# tar 打包
tar = tarfile.open('black.tar.gz', 'w') # 创建一个空包
# 将文件写入包内,arcname 是文件对象,压缩后包里文件名称就是这个对象名
tar.add('./image-1.jpg', arcname='image1')
tar.add('./image-2.png', arcname='image2')
tar.close()
# tar 解包
tar = tarfile.open('black.tar.gz', 'r')
tar.extractall() # 解压所有文件
tar.extract(tar.getmember('image1')) # 解压指定文件,需要传入文件对象名
tar.close()