python 解压zip 慢_Python解压ZIP、RAR等常用压缩格式的方法

解压大杀器

首先祭出可以应对多种压缩包格式的python库:patool。如果平时只用基本的解压、打包等操作,也不想详细了解各种压缩格式对应的python库,patool应该是个不错的选择。

patool库支持的格式包括:

7z (.7z, .cb7), ACE (.ace, .cba), ADF (.adf), ALZIP (.alz), APE (.ape), AR (.a), ARC (.arc), ARJ (.arj), BZIP2 (.bz2), CAB (.cab), COMPRESS (.Z), CPIO (.cpio), DEB (.deb), DMS (.dms), FLAC (.flac), GZIP (.gz), ISO (.iso), LRZIP (.lrz), LZH (.lha, .lzh), LZIP (.lz), LZMA (.lzma), LZOP (.lzo), RPM (.rpm), RAR (.rar, .cbr), RZIP (.rz), SHN (.shn), TAR (.tar, .cbt), XZ (.xz), ZIP (.zip, .jar, .cbz) and ZOO (.zoo)

patool的基本使用方法:

import patoolib

# 解压缩

patoolib.extract_archive("archive.zip", outdir="/tmp")

# 测试压缩包是否完整

patoolib.test_archive("dist.tar.gz", verbosity=1)

# 列出压缩包内的文件

patoolib.list_archive("package.deb")

# 创建压缩包

patoolib.create_archive("/path/to/myfiles.zip", ("file1.txt", "dir/"))

# 比较压缩包内文件的差异

patoolib.diff_archives("release1.0.tar.gz", "release2.0.zip")

# 搜索

patoolib.search_archive("def urlopen", "python3.3.tar.gz")

# 修改压缩包的压缩格式

patoolib.repack_archive("linux-2.6.33.tar.gz", "linux-2.6.33.tar.bz2")

但是,patool的正常运行依赖于其他解压软件,例如,我平时用patool来解压文件时它主要调用了我电脑的7z、Rtools两个程序,如果电脑上没有能够处理相应压缩文件的软件,则会报错:

patoolib.util.PatoolError: could not find an executable program to extract format rar; candidates are (rar,unrar,7z)

另外,patool无法处理具有密码保护的压缩文件。

与patool类似的库还有pyunpack、easy-extract:pyunpack库依赖zipfile和patool,支持两库所支持的所有压缩格式,需提前安装;easy-extract库依赖解压软件unrar、7z、par2,需提前安装,同样支持多种解压格式。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值