工作中經常需要提取apk文件的特定URL地址,如是想到用Python腳本進行自動處理。
需要用到的Python基礎知識如下:
os.walk()
函數聲明:os.walk(top,topdown=True,onerror=None)
(1)參數top表示需要遍歷的頂級目錄的路徑。
(2)參數topdown的默認值是“True”表示首先返回頂級目錄下的文件,然后再遍歷子目錄中的文件。當topdown的值為"False"時,表示先遍歷子目錄中的文件,然后再返回頂級目錄下的文件。
(3)參數onerror默認值為"None",表示忽略文件遍歷時的錯誤。如果不為空,則提供一個自定義函數提示錯誤信息后繼續遍歷或拋出異常中止遍歷。
返回值:函數返回一個元組,含有三個元素。這三個元素分別是:每次遍歷的路徑名、路徑下子目錄列表、目錄下文件列表。
os.walk使用實例:刪除某個文件夾(當然可以通過os.listdir的遞歸調用刪除)
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")
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 = ''
新聞熱點
疑難解答
圖片精選