【问题标题】:Rarfile python module keeps throwing an error when trying to extract contents from a *.rar file尝试从 *.rar 文件中提取内容时,Rarfile python 模块不断抛出错误
【发布时间】:2018-04-17 04:22:44
【问题描述】:

所以我试图简单地将 rar 文件的内容提取到另一个位置-

import rarfile

epath='C:\\Users\\sidharth.m\\Desktop\\Rar\\xyz.rar'

def unrar(file):
    rf = rarfile.RarFile(file)
    rf.extractall()

unrar(epath)

但我收到以下错误 -

回溯(最近一次通话最后一次):
文件“C:\ProgramData\Anaconda3\lib\site-packages\rarfile.py”,第 2816 行,在 custom_popen raise RarCannotExec("Unrar 没有安装? (rarfile.UNRAR_TOOL=%r)" % UNRAR_TOOL) rarfile.RarCannotExec: Unrar 未安装? (rarfile.UNRAR_TOOL='unrar')

我已经尝试通过 anaconda 提示符和 cmd 添加和安装 rarfile 和 unrar 包,我还将它们各自的路径添加到环境路径变量中,如果这还不够,我什至将它们导入到项目文件夹中。

知道为什么会发生这个问题吗?

【问题讨论】:

  • 您使用的导入直接从您的操作系统使用底层库。你用的是什么操作系统?
  • @Fire im 使用 Windows 10

标签: python


【解决方案1】:
import rarfile

rarfile_full_path='PATHTOFILE\\xyz.rar'
path_to_extract='NEW_PATH_OF_YOUR_CHOICE'

def unrar(file,path):
    rf = rarfile.RarFile(file)
    rf.extractall(path)

unrar(rarfile_full_path,path_to_extract)

并且你需要在你的机器上安装unrarbsdtar;仅仅 rarfile python 包 还不够

来自 API 文档:

通过执行外部工具提取压缩文件:来自 RARLAB 的 unrar 或来自 libarchive 的 bsdtar。


我已经尝试添加和安装 rarfile 和 unrar 包 通过anaconda提示和cmd

首先检查您是否可以在 python

之外从 cmdunrar

【讨论】:

  • 当你说 - “检查你是否可以先从你的 cmd 中解压缩,在 python 之外”你是什么意思?我在 python cmd 中尝试 unrar 并且它抛出了同样的错误,我也尝试从 cmd 中 unrar 并且它说它无法识别。
  • rarfile 包使用您系统上的 unrar 工具;即>它不是“自治的”;如果 unrar 在您的系统上不起作用,它永远不会在 python 上起作用。因此,您需要尽一切努力让您的 unrar 安装在您的 Windows 系统上正常运行,然后在 python 上进行尝试。打开系统控制台cmd(不是python,不要打开python),尝试unrar命令;如果不能正常工作,你需要先修复它,然后再在 python 中重试。如果您的系统上安装了 unrar,则可能需要将 unrar 添加到 PATH 环境变量中。
  • 我已经尝试将它们添加到 PATH 环境变量中,但我知道问题可能出在我安装 'unrar' 的方法上。将进一步解决这个问题。感谢您的帮助:)
猜你喜欢
  • 1970-01-01
  • 2017-09-17
  • 1970-01-01
  • 2016-12-08
  • 2021-01-23
  • 2020-01-15
  • 1970-01-01
  • 1970-01-01
  • 2019-09-24
相关资源
最近更新 更多