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编程中运用闭包时所需要注意的一些地方
May 02 Python
python bottle框架支持jquery ajax的RESTful风格的PUT和DELETE方法
May 24 Python
python bmp转换为jpg 并删除原图的方法
Oct 25 Python
对numpy中二进制格式的数据存储与读取方法详解
Nov 01 Python
python读取xlsx的方法
Dec 25 Python
Python使用pymongo库操作MongoDB数据库的方法实例
Feb 22 Python
详解用python写网络爬虫-爬取新浪微博评论
May 10 Python
超实用的 30 段 Python 案例
Oct 10 Python
Python 取numpy数组的某几行某几列方法
Oct 24 Python
python实现梯度下降法
Mar 24 Python
基于python实现数组格式参数加密计算
Apr 21 Python
python3处理word文档实例分析
Dec 01 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
dede3.1分页文字采集过滤规则详说(图文教程)续二
2007/04/03 PHP
php实现的Curl封装类Curl.class.php用法实例分析
2015/09/25 PHP
Zend Framework动作助手Redirector用法实例详解
2016/03/05 PHP
Zend Framework教程之MVC框架的Controller用法分析
2016/03/07 PHP
php实现表单提交上传文件功能
2018/05/28 PHP
纯JavaScript实现的完美渐变弹出层效果代码
2010/04/02 Javascript
jQuery实战之仿淘宝商城左侧导航效果
2011/04/12 Javascript
javascript对select标签的控制(option选项/select)
2013/01/31 Javascript
JavaScript实现点击单选按钮改变输入框中文本域内容的方法
2015/08/12 Javascript
详解js的六大数据类型
2016/12/27 Javascript
JS请求servlet功能示例
2017/06/01 Javascript
jQuery.Ajax()的data参数类型详解
2017/07/23 jQuery
jQuery pager.js 插件动态分页功能实例分析
2019/08/02 jQuery
Layui选项卡制作历史浏览记录的方法
2019/09/28 Javascript
JS document form表单元素操作完整示例
2020/01/13 Javascript
ES6如何用一句代码实现函数的柯里化
2020/01/18 Javascript
django foreignkey外键使用的例子 相当于left join
2019/08/06 Python
python3中替换python2中cmp函数的实现
2019/08/20 Python
python打开使用的方法
2019/09/30 Python
Windows平台Python编程必会模块之pywin32介绍
2019/10/01 Python
python 的numpy库中的mean()函数用法介绍
2020/03/03 Python
Python中如何添加自定义模块
2020/06/09 Python
无需压缩软件,用python帮你操作压缩包
2020/08/17 Python
Python数据可视化常用4大绘图库原理详解
2020/10/23 Python
python 基于DDT实现数据驱动测试
2021/02/18 Python
详解html5页面 rem 布局适配方法
2018/01/12 HTML / CSS
英国电信商店:BT Shop
2019/12/17 全球购物
捷克建筑材料网上商店:DEK.cz
2021/03/06 全球购物
同事吵架检讨书
2014/02/05 职场文书
应届大学生自荐书
2014/06/17 职场文书
购房意向书
2014/08/30 职场文书
预备党员学习十八届三中全会精神思想汇报
2014/09/13 职场文书
故意伤害罪辩护词
2015/05/21 职场文书
数据库之SQL技巧整理案例
2021/07/07 SQL Server
python APScheduler执行定时任务介绍
2022/04/19 Python
在容器中使用nginx搭建上传下载服务器
2022/05/11 Servers