我一直在尝试创建一个脚本来提取*.rar文件,但是收到了错误。我一直在努力理解这个模块的文档,但是没有用(我是个编程新手,所以有时会在所有文档中迷失方向)。在
这里是我代码的相关部分,以及收到的错误。在
我的代码片段:
import rarfile
rarpath='/home/maze/Desktop/test.rar'
def unrar(file):
rf=rarfile.RarFile(file)
rf.rarfile.extract_all()
unrar(rarpath)
收到错误:
^{pr2}$我已经使用pip
安装了rarfile
2.8和unrar
0.3(请注意,如果需要后者,请确定)。在
提前感谢您的帮助,纠正我的功能或帮助理解软件包的文档。在
对RAR文件的支持一般是相当差的,这是一个正常的经验。在
为了让
rarfile
Python模块正常工作,还必须安装一个支持的工具来提取RAR文件。只有两个选择是bsdtar
或unrar
。不要用Pip安装它们,你必须用你的Linux软件包管理器来安装(或者你自己安装,如果你认为计算机的时间比你的时间更有价值)。例如在基于Debian的系统(包括Ubuntu)上运行或者
^{pr2}$请注意,bsdtar对RAR文件的支持级别与unrr不同。一些较新的RAR文件不会用bsdtar提取。在
那么您的代码应该如下所示:
注意使用}。在
rf.extract_all()
,而不是{如果您只是在做
extract_all
,那么就不需要使用rarfile
模块。您只需使用subprocess
模块:rarfile
模块基本上只不过是subprocess
的包装。在当然,如果您有选择的话,我建议您将归档文件迁移到一种更可移植、更受支持的归档格式。在
尝试使用
rf.extractall()
而不是rf.rarfile.extract_all()
,因为rf.rarfile
是@tdelaney指出的文件名。在并将},因为您需要}之上打开/读取rar文件并将其提取到内存中
import unrar
更改为{unrar
在{rf.rarfile
是文件的名称,通过打印其值可以看到该文件。删除它并检查您想要的方法help(rarfile.RarFile)
。在相关问题 更多 >
编程相关推荐