python使用7z解压apk包的方法

328次阅读  |  发布于5年以前

本文实例讲述了python使用7z解压apk包的方法。分享给大家供大家参考。具体如下:

这段代码通过shell调用7z对apk包进行解压缩


    def run_shell(command, mayFreeze=False):
     def check_retcode(retcode, cmd):
     if 0 != retcode:
     print >> sys.stderr, 'err executing ' + cmd + ':', retcode
     sys.exit(retcode)
     def read_close(f):
     f.seek(0)
     d = f.read()
     f.close()
     return d
     #print >> sys.stderr, '-- Executing', command
     if mayFreeze:
     tempout, temperr = tempfile.TemporaryFile(), tempfile.TemporaryFile()
     #open(os.devnull, 'w')
     p = subprocess.Popen(command, stdout=tempout, stderr=temperr)
     p.wait()
     output, errout = read_close(tempout), read_close(temperr)
     else:
     p=subprocess.Popen(command,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
     output = p.stdout.read()
     p.wait()
     errout = p.stderr.read()
     p.stdout.close()
     p.stderr.close()
     #check_retcode(p.returncode, command)
     return (output.strip(), errout.strip())
    #z7 is the full path to 7z.exe
    #at times you have to encode the command into GBK/UTF8
    run_shell(u'{0} -y -o"{1}" {2} x "{3}"'.format(z7, tempdir, icon, apk))
    shutil.copy(u'{0}/{1}'.format(tempdir,os.path.basename(icon)),dst_path)

希望本文所述对大家的Python程序设计有所帮助。

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8