我正在使用python自动提取档案。我正在使用子进程:
command = "7z e " + self.dir + " -o" + dest
subprocess.call(command)
其中self.dir是存档的目录(作为.rar文件),dest是目标文件夹。
我的问题是它随意起作用。出于某种原因,它会提取一些档案,但不会提取其他档案。我没有找到一个模式,但我已经阅读了命令提示符,当它不起作用时,它打印
Error:
cannot find archive
令人讨厌的是,我可以使用GUI提取完全相同的存档。我的实际计划似乎有问题。
我该怎么做才能解决这个问题?
答案 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程序感到困惑。