Ale*_*gom 3 python extract rar
我有一个包含 2 个文件的 RAR 存档,但我只想提取一个。我在另一个答案中发现我可以使用该rarfile包,根据文档,该包包含该extract函数。但是,当我尝试运行脚本时,我得到FileNotFoundError: [WinError 2]以下信息:During handling of the above exception, another exception occurred: ... rarfile.RarCannotExec: Unrar not installed? (rarfile.UNRAR_TOOL='unrar')。
从我找到的信息来看,我发现这可能与Unrar.exePATH 中缺少可执行文件有关,我尝试添加它,但没有任何改变。另一个建议是添加rarfile.UNRAR_TOOL='unrar'到脚本中作为配置包行为的一种方式,同样的错误。
这是我的 MWE,用 Python 3.5.3 编写和测试:
from rarfile import RarFile
with RarFile('Test.rar') as file:
file.extract(file.namelist()[0])
Run Code Online (Sandbox Code Playgroud)
文件正在正确打开,因为file.namelist()返回了存档的内容。
提前致谢!
根据OP评论更新:
我设法使用以下代码仅解压一个文件
from rarfile import RarFile
RarFile.UNRAR_TOOL='C:\\full\\path\\to\\UnRARDLL.exe'
with RarFile('test.rar') as file:
file.extract(file.namelist()[0])
Run Code Online (Sandbox Code Playgroud)
下载UnRARDLL.exe并提供正确的完整路径RarFile.UNRAR_TOOL。
您可能想使用patool
import patoolib
patoolib.extract_archive("Test.rar", outdir="/some/dir")
Run Code Online (Sandbox Code Playgroud)
适用于windows和linux,无需额外软件。
要安装使用:pip install patool