各位用户为了找寻关于python使用7z解压apk包的方法的资料费劲了很多周折。这里教程网为您整理了关于python使用7z解压apk包的方法的相关资料,仅供查阅,以下为您介绍关于python使用7z解压apk包的方法的详细内容
本文实例讲述了python使用7z解压apk包的方法。分享给大家供大家参考。具体如下:
这段代码通过shell调用7z对apk包进行解压缩
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30def
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程序设计有所帮助。