使用7zip提取.rar文件但无法找到存档

时间:2012-10-03 12:40:40

标签: python command-line extract 7zip

我正在使用python自动提取档案。我正在使用子进程:

command = "7z e " + self.dir + " -o" + dest
subprocess.call(command)

其中self.dir是存档的目录(作为.rar文件),dest是目标文件夹。

我的问题是它随意起作用。出于某种原因,它会提取一些档案,但不会提取其他档案。我没有找到一个模式,但我已经阅读了命令提示符,当它不起作用时,它打印

Error:
cannot find archive

令人讨厌的是,我可以使用GUI提取完全相同的存档。我的实际计划似乎有问题。

我该怎么做才能解决这个问题?

3 个答案:

答案 0 :(得分:1)

您目前的目录是什么?请检查“self.dir”是否是完整文件路径,而不仅仅是相对路径。试试这个来检查:

print os.path.abspath(self.dir)
print os.getcwd()
print os.path.isfile(self.dir)

顺便说一下,使用“dir”作为属性名称是不幸的。 dir是一个内置函数。

答案 1 :(得分:1)

我认为subprocess.call()在传递参数时需要一个列表。试试这个:

command = ["7z", "e", self.dir, "-o", dest]

答案 2 :(得分:1)

在目录字符串中添加引号。你可能有空格让zip程序感到困惑。