python py7zr 压缩解压 指定文件名、文件后缀

依赖库

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)
参考文章
  1. python3 解压7z文件
  2. Python压缩、减压7z文件

你可能感兴趣的:(python,python,7z)