当前位置:   article > 正文

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

py7zr.sevenzipfile

依赖库

pip install py7zr -i https://pypi.douban.com/simple
  • 1

基本用法

解压

解压全部文件到制指定目录

import py7zr
with py7zr.SevenZipFile('./target.7z', mode='r') as z:
    z.extractall(path='./')
  • 1
  • 2
  • 3

压缩

压缩指定目录内全部文件到7z文件:

import py7zr
with py7zr.SevenZipFile('target.7z', 'w') as z:
    z.writeall('./base_dir')
  • 1
  • 2
  • 3

基本用法 升级版

上面这俩是网上的常见例子,但是我场景需要制定个别文件压缩到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()])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

提取压缩包指定文件,文件名

看上面的指定文件名压缩,同理,可以仅提取压缩包内的指定文件

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
  • 2
  • 3
参考文章
  1. python3 解压7z文件
  2. Python压缩、减压7z文件
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/746313
推荐阅读
相关标签
  

闽ICP备14008679号