如何从python脚本执行7zip命令

如何从python脚本执行7zip命令,python,7zip,os.system,Python,7zip,Os.system,我试图了解如何使用os.system模块来执行7zip命令。现在,我不想用Popen或子进程使事情复杂化。我已安装7zip并将7zip.exe复制到我的用户文件夹中。我只想解压缩我的测试文件install.zip。但是,使用下面的代码会导致shell在退出之前短暂出现,并且没有解压缩。你能告诉我为什么吗 def main(): try: os.system(r"C:\Users\Oulton\ 7z e C:\Users\Oulton\install.zip")

我试图了解如何使用os.system模块来执行7zip命令。现在,我不想用Popen或子进程使事情复杂化。我已安装7zip并将7zip.exe复制到我的用户文件夹中。我只想解压缩我的测试文件install.zip。但是,使用下面的代码会导致shell在退出之前短暂出现,并且没有解压缩。你能告诉我为什么吗

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()

非常感谢

以下行有几个问题:

os.system("C:\Users\Oulton\ 7z e C:\Users\Oulton\install.zip  ")
由于字符串包含反斜杠,因此应使用:

(注意第一个双引号前的
r

我还移除了多余的空间。第一个(在
7z
之前)肯定有问题

还要注意,
traceback.print\u exc
不调用该函数。您需要添加括号:
traceback.print\u exc()


最后,建议在新代码中使用模块。

可以使用子流程模块完成:

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();

第一步。正确设置问题中的代码格式。第二步。阅读
子流程
模块。第三步。请将您的问题修改为使用
子流程
而不是
操作系统
。是的,我会详细阅读子流程thanks@AlexOulton:是否也尝试删除空格?
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();