如何从python scrip执行7zip命令

2024-06-02 07:52:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图了解如何使用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()

非常感谢


Tags: 模块install用户命令文件夹osmain流程
2条回答

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

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

以下行有几个问题:

os.system("C:\Users\Oulton\ 7z e C:\Users\Oulton\install.zip  ")

由于字符串包含反斜杠,因此应使用raw string

os.system(r"C:\Users\Oulton\7z -e C:\Users\Oulton\install.zip")

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

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

还要注意,traceback.print_exc不调用函数。你需要加上括号:traceback.print_exc()

最后,建议在新代码中^{}模块是used in preference to ^{}

相关问题 更多 >