Python apkファイルURLアドレスインスタンスの取得
#! /usr/bin/env python
#coding=utf-8
import os
def Remove_dir(top_dir):
if os.path.exists(top_dir)==False:
print "not exists"
return
if os.path.isdir(top_dir)==False:
print "not a dir"
return
for dir_path,subpaths,files in os.walk(top_dir,False):
for file in files:
file_path=os.path.join(dir_path,file)
print "delete file:%s" %file_path
os.remove(file_path)
print "delete dir:%s" %dir_path
os.rmdir(dir_path)
#
Remove_dir(r"C:\Users\Administrator\Desktop\abc")
Pythonがシステムコマンドを実行する方法os.system(),os.popen(),commands.getstatusoutput()
os.System()は出力と戻り値を取得できません.
osを通るpopen()はfile readのオブジェクトを返し、read()を読み出す操作で実行された出力が表示されますが、戻り値は得られません.
commandsを通ります.getstatusoutput()メソッドでは、戻り値と出力が得られます.
(status, output) = commands.getstatusoutput('cat/proc/cpuinfo')
3.Pythonのoperatorモジュールのcontains(…)関数#カンスウ#
contains(a, b) -- Same as b in a (note reversed operands). bがaに含まれるか否かを判断する
基礎知識の紹介が終わったら、コードをつけることができます.
import os
import operator
import commands
#from signature import *
inputdir = "./tmp"
for path, dir, files in os.walk(inputdir):
for file in files:
if not file.endswith('.apk'):
#print "not apk file."
continue
apkpath = os.path.join(inputdir, file)
cmd = './xxx -d %s' %apkpath
output = os.popen(cmd)
s = set()
# URL
for line in output:
if operator.contains(line, "http://"):
#print tmp
start = line.index('''http://''')
end = line.index('''"''',start)
url = line[start:end]
s.add(url)
cmd = './yyy -t a.expense.mdk.a.tvd %s' %apkpath
#
status, output = commands.getstatusoutput(cmd)
# print output
if output.startswith('find'):
print output
for url in s:
if url.find('imei')!=-1:
print 'url is %s' %url.strip()
#print '========================='
s = ''