python解压缩-[rar]、[zip]

本文介绍了如何使用Python在Windows环境下解压缩RAR和ZIP文件。针对RAR格式,文章详细说明了解决Python库rarfile和unrar库的环境配置问题,包括添加unrar.exe到环境变量和下载UnRAR DLL库文件。对于ZIP格式,文章提到了解压缩可能导致的中文乱码问题,并提供了两种解决方案,包括修改zipfile库源码和解压后递归重命名。
摘要由CSDN通过智能技术生成

Python版本:3.9.6

ide:PyCharm 2021.1.3


        常用的压缩格式有很多种,而不同的压缩包的解压需要用到不同的库,下面根据一些常用的压缩包给出各自的解决方案。


目录

rar格式

zip格式

完整源码


rar格式

        主要代码就两行,如下:

import rarfile

rar = rarfile.RarFile(file)
# 解压缩到指定目录
rar.extractall(outdir)

        但是执行时大多数人会报错:rarfile.RarCannotExec: Cannot find working tool,如下:

        看上去像是少了什么东西,我们再来看看这个库的说明,发现必须要配合unrar的工具来使用。

        通过网上找方法,基本都是以下两种:

        1、下载WinRAR工具,将UnRAR.exe放在脚本目录venv/Scripts下,因为rarfile识别的是unrar.exe,需要改下名称

        2、系统环境变量Path中加入unrar.exe所在目录(注意是系统变量,不是用户变量)。

        笔者测试了两种方法,第一种方法没有作用,第二种方法是有用的,说明无论如何都要配置环境变量(如果使用pychram,注意修改之后重启pychram端)。

        同时,笔者发现了另外一个unrar库,使用方式同rarfile,如下:

from unrar import rarfile

rar = rarfile.RarFile(file)
# 解压缩到指定目录
rar.extractall(outdir)

        但是执行时报错:LookupError: Couldn't find path to unrar library.,如下:

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python提供了多种解压缩文件的方法。其中一种方法是使用zipfile模块来进行解压缩操作。通过创建ZipFile对象,可以对zip文件进行解压缩操作。如果想要将整个zip文件解压缩到当前工作目录中,可以使用ZipFile对象的extractall()方法。 另外,如果想要将指定文件压缩到zip文件中,可以使用ZipFile对象的write()方法。该方法接受两个参数,第一个参数是要添加到zip文件中的文件路径,第二个参数是压缩类型参数,一般设置为zipfile.ZIP_DEFLATED。 另外,除了zip文件,还可以使用tar、gz、rar和xz等格式进行解压缩操作。具体的解压缩方法可以参考相关的模块和函数。例如,如果需要对tar文件进行解压缩,可以使用tarfile模块中的open()函数打开tar文件,然后使用extractall()方法进行解压缩操作。 综上所述,Python提供了丰富的解压缩方法,可以根据不同的需求选择合适的方法进行解压缩操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [python 文件解压缩](https://blog.csdn.net/weixin_45459224/article/details/127120860)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [使用Python实现文件压缩和解压](https://blog.csdn.net/u012206730/article/details/104757875)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值