本文實例講述了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
30
|
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程序設計有所幫助。