依赖库
pip install py7zr -i https://pypi.douban.com/simple
基本用法
解压
解压全部文件到制指定目录
import py7zr
with py7zr.SevenZipFile('./target.7z', mode='r') as z:
z.extractall(path='./')
压缩
压缩指定目录内全部文件到7z文件:
import py7zr
with py7zr.SevenZipFile('target.7z', 'w') as z:
z.writeall('./base_dir')
基本用法 升级版
上面这俩是网上的常见例子,但是我场景需要制定个别文件压缩到7z,所以探索了下,具体实现如下:
指定文件名、文件后缀 压缩
import py7zr
with py7zr.SevenZipFile('target.7z', 'w') as z:
file_list = ['21123.txt', 'dsadsadsa.txt']
for f in file_list:
z.write('./upload/' + f)
z.write('./upload/' + f)
kk = os.listdir('./upload/')
for f in kk:
if f.endswith('csv'):
z.write('./upload/' + f)
print([x.filename for x in z.list()])
提取压缩包指定文件,文件名
看上面的指定文件名压缩,同理,可以仅提取压缩包内的指定文件
with py7zr.SevenZipFile('./target.7z', mode='r') as z:
out_files = [f.filename for f in z.list() if f.filename.endswith('csv')]
z.extract(path='./csv', targets=out_files)