安装包(*.exe)使用7z自行解压

今天接到一个小活,需要在打包平台中接一个小脚本。需要对*.exe安装包进行解压并对其解压后的文件进行数字签名认证。起初以为是多么easy的事情,结果在实际操作中发现通过使用import zipfile、import tarfile均宣告解压失败。

不过发现7z到是可以解压,

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import os
import sys

def Extract_File(filePath,target):
    """"""
    zip_command = r'C:\Progra~1\7-Zip\7z' + " "+"x %s -y -o%s" %(filePath,target)
    print zip_command 
    os.system(zip_command)
    

“zip_command = r'C:\Progra~1\7-Zip\7z' + " "+"x %s -y -o%s" %(filePath,target)”直接通过os.system执行该命令行,搞定!

备注:命令行中参数“x”为全路径解压,相当于在*.exe文件上右键执行“7-zip|提取到.....”。开始使用的参数“e”,结果递归把*.exe中包含的二级exe文件也解压了(eg:安装包中的执行exe和uninstall.exe等)。-y 跳过询问一路执行到底,-o设置输出路径

解压成功剩下的就nice了:

1 def recursion_File(path):
2     for root,dir,files in os.walk(path):
3         for file in files:
4             #调用小工具循环执行签名验证


 

原文地址:https://www.cnblogs.com/kratos0517/p/3063252.html