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文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值