最近用python调用rarfile进行解压rar压缩包时,报了如下错误:

rarfile.RarCannotExec: Unrar not installed? (rarfile.UNRAR_TOOL='unrar')

结合本人C#调用rar.exe的经验:rar压缩包的算法并不对外公开,所以其它软件想压缩或解压rar文件,必须通过cmd调用rar.exe。

所以,怀疑rarfile其实也是调用的rar.exe或unrar.exe

百度后发现如下两篇文章,侧面证实了上述猜测。

参考

https://blog.csdn.net/big_talent/article/details/52367184

https://blog.csdn.net/luoye7422/article/details/41873499

解决方案

据winrar的目录中的unrar.exe,拷贝到我的python脚本目录下,再执行就ok了;

或者环境变量path中加入unrar.exe所在目录;

PyCharm的话,可以将unrar.exe复制到项目的venv/Scripts下。

Rarfile解压不了的问题的更多相关文章

  1. Linux下的压缩(zip)解压(unzip)缩命令

      .zip命令 zip -r myfile.zip ./* 将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件. 2.unzip命令 unzip -o ...

  2. python 解压 压缩包

    转 http://m.blog.csdn.net/blog/wice110956/26597179# 这里讨论使用Python解压如下五种压缩文件: .gz .tar  .tgz .zip .rar ...

  3. Java解压上传zip或rar文件,并解压遍历文件中的html的路径

    1.本文只提供了一个功能的代码 public String addFreeMarker() throws Exception { HttpSession session = request.getSe ...

  4. SpringMVC上传压缩文件,解压文件,并检测上传文件中是否有index.html

    SpringMVC上传压缩文件,解压文件,并检测上传文件中是否有index.html 说明: 1.环境:SpringMVC+Spring+Tomcat7+JDK1.7 2.支持 zip和rar格式的压 ...

  5. python循环解压rar文件

    python循环解压rar文件 C:. │ main.py │ ├─1_STL_算法简介 │ STL_算法简介.rar │ └─2_STL_算法_填充新值 STL_算法_填充新值.rar 事情是这样的 ...

  6. Zip文件和RAR文件解压

    直接上工具类: package com.ksource.pwlp.util; import java.io.File; import java.io.FileOutputStream; import ...

  7. java批量解压文件夹下的所有压缩文件(.rar、.zip、.gz、.tar.gz)

    // java批量解压文件夹下的所有压缩文件(.rar..zip..gz..tar.gz) 新建工具类: package com.mobile.utils; import com.github.jun ...

  8. python解压压缩包的几种方法

    这里讨论使用Python解压例如以下五种压缩文件: .gz .tar  .tgz .zip .rar 简单介绍 gz: 即gzip.通常仅仅能压缩一个文件.与tar结合起来就能够实现先打包,再压缩. ...

  9. Java中解压文件名有中文的rar包出现乱码问题的解决

    import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import j ...

随机推荐

  1. nginx 跳转系列

    1.nginx强制跳转https配置,通过http状态吗实现,http状态吗地址: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/3 ...

  2. mongodb之oplog

    1.查看master上当前的oplog状态: >rs.printReplicationInfo() configured oplog size: 5000MBlog length start t ...

  3. eclipse下查看java源码设置

    myway: 1.选择一函数,按住ctrl,显示open declaration(或按F3); 2.点进去: 如果未配置,点 source attachment configuration -- ex ...

  4. idea调试springmvc出现java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

    idea调试springmvc出现java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderList ...

  5. 分布式理论(七)—— 一致性协议之 ZAB

    前言 在前面的文章中,我们说了很多一致性协议,比如 Paxos,Raft,2PC,3PC等等,今天我们再讲一种协议,ZAB 协议,该协议应该是所有一致性协议中生产环境中应用最多的了.为什么呢?因为他是 ...

  6. [转]一分钟告诉你究竟DevOps是什么鬼?

    本文转自:https://www.cnblogs.com/jetzhang/p/6068773.html 一分钟告诉你究竟DevOps是什么鬼?   历史回顾 为了能够更好的理解什么是DevOps,我 ...

  7. ASP.NET MVC使用RenderSection渲染节点

    几天没有时间做ASP.NET mvc练习,忙于ERP的二次开发.忙里间,想起MVC还有很多基础的知识需要撑握与了解.记得以前有练习过<MVC母版页_Layout.cshtml> http: ...

  8. jsp、css中引入外部资源相对路径的问题

    在jsp页面中添加base,可用相对路径: <% String path = request.getContextPath(); String basePath = request.getSch ...

  9. Python生成语音

    from aip import AipSpeech # 利用百度语音合成音频文件 """ 你的 APPID AK SK """ APP_ID ...

  10. 使用json-org包实现POJO和json的转换

    使用json-org包实现POJO和json的转换 这个jar包把对象转换成json超级舒服,所以顺便记录一下吧 把单个pojo对象转换成json对象 Student student = new St ...