Python压缩、减压7z文件

  • py7zr简介
  • 安装
  • 解压文件
  • 压缩、归档

py7zr简介

py7zr 是一个由Python编程语言编写的7zip存档压缩、解压缩、加密和解密的库和实用程序。要求的最低版本是Python 3.6。

支持的算法:

  • compress

    • LZMA2
    • LZMA
    • Bzip2
    • Deflate
    • Copy
    • ZStandard
    • Brotli
    • Deflate64 (Decompression only)
    • PPMd (Experimental)
  • crypt
    • 7zAES
  • Filters
    • Delta
    • BCJ(X86,ARMT,ARM,PPC,SPARC,IA64)

安装

可以直接使用pip进行安装py7zr:

 pip install py7zr

或者使用conda:

conda install -c conda-forge py7zr

解压文件

下面是一段代码片段,介绍如何解压文档中的一些文件:

import py7zrarchive = py7zr.SevenZipFile('sample.7z', mode='r')
archive.extractall(path="/tmp")
archive.close()

py7zr (v0.6及更高版本) 也提供了上下文管理,所以可以使用 with 代码块:

import py7zrwith py7zr.SevenZipFile('sample.7z', mode='r') as z:z.extractall()with py7zr.SevenZipFile('target.7z', 'w') as z:z.writeall('./base_dir')

py7zr 还支持提取单个或通过 extract(targets=[‘file path’]) 选定的多个文件。注意:如果只指定文件而不指定父目录,将会提取失败。

import py7zr
import refilter_pattern = re.compile(r'<your/target/file_and_directories/regex/expression>')
with SevenZipFile('archive.7z', 'r') as archive:allfiles = archive.getnames()selective_files = [f for f in allfiles if filter_pattern.match(f)]archive.extract(targets=selective_files)

py7zr(v0.6及更高版本)支持提取受密码保护的归档文件。

import py7zrwith py7zr.SevenZipFile('encrypted.7z', mode='r', password='secret') as z:z.extractall()

压缩、归档

下面是一段如何生成归档文件的事例代码。

import py7zrwith py7zr.SevenZipFile('target.7z', 'w') as archive:archive.writeall('/path/to/base_dir', 'base')

要创建加密存档,请传递密码。

import py7zrwith py7zr.SevenZipFile('target.7z', 'w', password='secret') as archive:archive.writeall('/path/to/base_dir', 'base')

要使用zstandard等算法创建存档,可以使用自定义过滤器调用。

import py7zrmy_filters = [{"id": py7zr.FILTER_ZSTD}]
another_filters = [{"id": py7zr.FILTER_ARM}, {"id": py7zr.FILTER_LZMA2, "preset": 7}]
with py7zr.SevenZipFile('target.7z', 'w', filters=my_filter) as archive:archive.writeall('/path/to/base_dir', 'base')

Python压缩、减压7z文件相关推荐

  1. python 压缩文件 调用7z_Python:如何从Python压缩的7z文件中读取一行?

    (详细介绍收益率部分)注意,我不知道这个库,也不知道你用什么函数来获取未压缩的数据块.但我的意思是:def 7zreadline(filename): with open(filename, 'rb' ...

  2. python压缩教程_如何使用Python压缩/解压缩zip文件?(代码示例)

    在批量交换大文件和多个文件时,使用zip文件是非常方便的.下面本篇文章就来带大家认识解一下zip文件,介绍使用Python压缩或解压缩zip文件的方法,希望对大家有所帮助.[视频教程推荐:Python ...

  3. 用Python压缩和提取文件

    如果您使用计算机已有一段时间,则可能遇到了扩展名为.zip的文件. 它们是特殊文件,可以保存许多其他文件,文件夹和子文件夹的压缩内容. 这使它们对于通过Internet传输文件非常有用. 您是否知道可 ...

  4. python解压7z文件_Python调用7zip命令实现文件批量解压

    Python调用7zip命令实现文件批量解压 1.输入压缩文件所在的路径 2.可以在代码中修改解压到的文件路径和所需要解压的类型,列入,解压文件夹下面所有的mp4格式的文件 3.cmd 指的就是Pyt ...

  5. python压缩_Python札记 -- 文件压缩

    在日常工作当中免不了要对文件进行压缩,Python标准库里也提供了实现压缩功能的模块. 一.简单的例子 首先了解一下压缩单个文件在Python中怎么实现.竹风建了个测试文件夹zip_text,里面有t ...

  6. JAVA 7z Seven Zip 压缩和解压文件

    JAVA 7z Seven Zip 压缩和解压文件 7-Zip是基于GNU LGPL协议发布的软件,通过全新算法使压缩比率大幅提升 本文主要讲解通过JAVA方式把文件压缩成7z文件和对7z文件进行解压 ...

  7. Python学习笔记(一)压缩与解压缩文件

    Python压缩与解压缩文件 Python能够直接处理zip文件中的数据,例如需要将对应目录或多文件打包或压缩成zip格式,或者需要查看一个zip格式的归档文件中部分或所有的文件同时避免将这些文件展开 ...

  8. c语言lzma算法,C语言编程使用lzma SDK对7z文件简略解压缩

    有时候我们只需要单纯对lzma算法压缩的7z文件进行解压,有时需要在嵌入式设备上解压,使用p7zip虽然支持多种格式,但是不容易裁剪,使用lzma SDK是首选: 可以在这里找到各种版本:http:/ ...

  9. python批量解压文件,python批量解压zip文件的方法

    python怎样压缩和解压缩ZIP文件 说明 python使用zipfile模块来压缩和解压zip文件 才能最好于孤独中培养:品格最好在世界的汹涌波涛中形成. 代码 import os,os.path ...

  10. Python解压7z压缩文件

    Python解压7z压缩文件 可以使用py7zr库: import py7zrarchive = py7zr.SevenZipFile(r'xxx.7z', mode='r')archive.extr ...

最新文章

  1. 游戏风格化角色创建入门指南视频教程
  2. CSS使用线性渐变实现滚动进度条
  3. [OSG]OSG的相关扩展
  4. 计算机蠕虫的存在形式,计算机蠕虫
  5. c语言输入若干数输出最小值循环结构,C语言上机150道题
  6. 一个android工程生成两个aar,android studio生成aar包并在其他工程引用aar包(示例代码)...
  7. 64位MinGW和MSYS的安装
  8. 核心显卡是新一代的智能图形核心
  9. 【ElasticSearch】IK分词加入标点符号
  10. web前端基础知识:html布局如何应用?
  11. 将多张图片转为avi视频,再转为h264文件
  12. Python:渗透测试开源项目【源码值得精读】
  13. [渝粤教育] 重庆工程职业技术学院 Linux服务器配置与管理 参考 资料
  14. html盒子如何左对齐,【图片】怎么才能让盒子里的LI标签在实现的时候左对齐?在线等急!!!!【web前端开发吧】_百度贴吧...
  15. 在使用JEDate时间控件时,不能捕捉到input的change事件的解决办法
  16. [News]传奇乞丐粉笔字震惊全国 字库上门求字
  17. windows7计算机启动修复怎么办,Win7电脑开机提示启动修复无法进入系统怎么办?...
  18. sipdroid软件直接使用andriod打网络电话
  19. java计算机毕业设计即时高校信息发布系统源码+mysql数据库+系统+lw文档+部署
  20. python中1到100怎么表示_python如何计算1到100的和(用for循环)

热门文章

  1. 伦斯勒理工大学计算机专业好申请吗,伦斯勒理工学院申请条件
  2. 移动MM要走进大学!
  3. Android 插件化换肤方案
  4. 2014大众点评Hackathon参赛感想
  5. 如何设计一个可用的web容器
  6. OpenCV学习笔记-Shi-Tomasi角点检测
  7. Noteability和GoodNotes日常使用细节对比
  8. bittorrent+sync+java_使用BitTorrent-Sync实现双机文件双向同步
  9. Java数组的扩容与缩减
  10. Preferences 是什么呢?