Python获取apk文件URL地址实例


Posted in Python onNovember 01, 2013

工作中经常需要提取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的递归调用删除)

#! /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 = ''
Python 相关文章推荐
浅谈Python中的闭包
Jul 08 Python
用Python设计一个经典小游戏
May 15 Python
Python实现单词翻译功能
Jun 06 Python
浅谈tensorflow1.0 池化层(pooling)和全连接层(dense)
Apr 27 Python
PythonWeb项目Django部署在Ubuntu18.04腾讯云主机上
Apr 01 Python
pandas实现将dataframe满足某一条件的值选出
Jun 12 Python
Win10环境python3.7安装dlib模块趟过的坑
Aug 01 Python
Django 对象关系映射(ORM)源码详解
Aug 06 Python
Python 复平面绘图实例
Nov 21 Python
python安装后的目录在哪里
Jun 21 Python
深入分析python 排序
Aug 24 Python
python xlwt模块的使用解析
Apr 13 Python
Python urllib模块urlopen()与urlretrieve()详解
Nov 01 #Python
Python ZipFile模块详解
Nov 01 #Python
python标准日志模块logging的使用方法
Nov 01 #Python
python类定义的讲解
Nov 01 #Python
用实例说明python的*args和**kwargs用法
Nov 01 #Python
python操作MongoDB基础知识
Nov 01 #Python
python操作MySQL数据库具体方法
Oct 28 #Python
You might like
PHP 定界符 使用技巧
2009/06/14 PHP
php操作xml入门之xml标签的属性分析
2015/01/23 PHP
深入解析PHP的Yii框架中的缓存功能
2016/03/29 PHP
php处理静态页面:页面设置缓存时间实例
2017/06/22 PHP
JavaScript 直接操作本地文件的实现代码
2009/12/01 Javascript
基于javascipt-dom编程 table对象的使用
2013/04/22 Javascript
将查询条件的input、select清空
2014/01/14 Javascript
javascript自动给文本url地址增加链接的方法分享
2014/01/20 Javascript
js实现div弹出层的方法
2014/11/20 Javascript
用原生js做单页应用
2017/01/17 Javascript
ionic2屏幕适配实现适配手机、平板等设备的示例代码
2017/08/11 Javascript
使用node.js对音视频文件加密的实例代码
2017/08/30 Javascript
详解node单线程实现高并发原理与node异步I/O
2017/09/21 Javascript
jQuery完成表单验证的实例代码(纯代码)
2017/09/30 jQuery
如何在基于vue-cli的项目自定义打包环境
2018/11/10 Javascript
JavaScript如何实现监听键盘输入和鼠标监点击
2020/07/20 Javascript
js实现自定义滚动条的示例
2020/10/27 Javascript
详解Vue.js3.0 组件是如何渲染为DOM的
2020/11/10 Javascript
[59:07]海涛为你详解DOTA2新版本“贤哲秘契”
2014/11/22 DOTA
[01:48]完美圣典齐天大圣至宝宣传片
2016/12/17 DOTA
Python数据类型详解(四)字典:dict
2016/05/12 Python
python消除序列的重复值并保持顺序不变的实例
2018/11/08 Python
一篇文章搞懂Python的类与对象名称空间
2018/12/10 Python
django celery redis使用具体实践
2019/04/08 Python
django-crontab 定时执行任务方法的实现
2019/09/06 Python
基于pygame实现童年掌机打砖块游戏
2020/02/25 Python
一文带你了解Python 四种常见基础爬虫方法介绍
2020/12/04 Python
荷兰牛仔裤网上商店:Jeans Centre
2018/04/03 全球购物
Hotels.com加拿大:领先的在线住宿网站
2018/10/05 全球购物
澳大利亚最好的电动自行车:Leon Cycle
2020/12/19 全球购物
幼儿园教育教学反思
2014/01/31 职场文书
英文请假条
2014/04/11 职场文书
研修心得体会
2014/09/04 职场文书
大学生第一学年自我鉴定2015
2014/09/28 职场文书
工作失职造成投诉的检讨书范文
2014/10/05 职场文书
css清除浮动clearfix:after的用法详解(附完整代码)
2023/05/21 HTML / CSS