我有一个包含两个文件的RAR档案,我只想提取一个。我在另一个答案中发现我可以使用rarfile
包,根据documentation包含extract
函数。但是,当我尝试运行一个脚本时,我会得到一个FileNotFoundError: [WinError 2]
和以下信息:During handling of the above exception, another exception occurred
:。。。rarfile.RarCannotExec: Unrar not installed? (rarfile.UNRAR_TOOL='unrar')
。
从我能找到的信息中,我看到它可能与路径中缺少Unrar.exe
可执行文件有关,我试图添加它,但没有改变。另一个建议是将rarfile.UNRAR_TOOL='unrar'
添加到脚本中,作为配置包行为的一种方法,这也是同样的错误。
这是我的MWE,用Python 3.5.3编写和测试:
from rarfile import RarFile
with RarFile('Test.rar') as file:
file.extract(file.namelist()[0])
由于file.namelist()
返回存档的内容,文件已正确打开。
提前谢谢!
如果RAR文件使用压缩,则必须以某种方式使用unrr(或基于unrr源代码的某种东西)。如果不使用压缩,
rarfile
可以为您完成这一切。佩德罗洛比托的解决方案必须奏效。如果您得到
FileNotFoundError
,我建议您再次检查您的文件名和路径。你的问题是:rarfile.UNRAR_TOOL='unrar'
,但是rarfile
的大写必须是RarFile
,如Pedro所示。两者都是适当的代码,但它们有不同的含义。同时尝试使用完整路径,不要忘记.exe。根据操作注释更新:
我用下面的代码只解压了一个文件
下载UnRARDLL.exe,并提供到
RarFile.UNRAR_TOOL
的正确完整路径。您可能需要使用
patool
在
windows
和linux
上工作,不需要额外的软件。要安装,请使用:
pip install patool
相关问题 更多 >
编程相关推荐