如何在Python脚本中执行7zip命令
我想了解一下如何使用os.system模块来执行7zip的命令。目前我不想用Popen或subprocess这些复杂的东西。我已经安装了7zip,并把7zip.exe复制到了我的用户文件夹里。我只想解压我的测试文件install.zip。但是使用下面的代码时,命令行窗口会闪现一下就消失了,而且没有解压成功。请问这是为什么呢?
def main():
try:
os.system(r"C:\Users\Oulton\ 7z e C:\Users\Oulton\install.zip")
except:
time.sleep(3)
traceback.print_exc
if __name__ == "__main__":
main()
非常感谢!
2 个回答
1
可以使用子进程模块来实现:
import subprocess
beforezip = D:\kr\file #full location
afterzip = filename.zip
Unzipped_file = "7z a \"%s\" \"%s\"" %( afterzip, beforezip )
retV = subprocess.Popen(cmdExtractISO, shell=True, stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
outData = retV.stdout.readlines();
8
下面这行代码有几个问题:
os.system("C:\Users\Oulton\ 7z e C:\Users\Oulton\install.zip ")
因为你的字符串里有反斜杠,所以你应该使用一个 原始字符串:
os.system(r"C:\Users\Oulton\7z -e C:\Users\Oulton\install.zip")
(注意在第一个双引号前面有个 r
。)
我还去掉了一些多余的空格。第一个空格(在 7z
前面)肯定是个问题。
另外要注意,traceback.print_exc
这个函数没有被调用。你需要加上括号:traceback.print_exc()
。
最后,建议在新代码中使用 subprocess
模块,而不是 os.system()
。