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的装饰器用法学习笔记
Jun 24 Python
使用Python操作excel文件的实例代码
Oct 15 Python
python中字符串比较使用is、==和cmp()总结
Mar 18 Python
对tf.reduce_sum tensorflow维度上的操作详解
Jul 26 Python
python装饰器简介---这一篇也许就够了(推荐)
Apr 01 Python
Python 获取ftp服务器文件时间的方法
Jul 02 Python
基于多进程中APScheduler重复运行的解决方法
Jul 22 Python
使用Django搭建一个基金模拟交易系统教程
Nov 18 Python
将tensorflow模型打包成PB文件及PB文件读取方式
Jan 23 Python
Python3.7在anaconda里面使用IDLE编译器的步骤详解
Apr 29 Python
Python绘制组合图的示例
Sep 18 Python
基于python的matplotlib制作双Y轴图
Apr 20 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常用函数的用法详解
2013/05/10 PHP
PHP网络操作函数汇总
2015/05/18 PHP
php生成唯一数字id的方法汇总
2015/11/18 PHP
PHP实现批量上传单个文件
2015/12/29 PHP
动态加载外部javascript文件的函数代码分享
2011/07/28 Javascript
使用jQuery操作Cookies的实现代码
2011/10/09 Javascript
七个很有意思的PHP函数
2014/05/12 Javascript
iframe调用父页面函数示例详解
2014/07/17 Javascript
上传图片js判断图片尺寸和格式兼容IE
2014/09/01 Javascript
javascript匿名函数实例分析
2014/11/18 Javascript
node.js中的buffer.Buffer.byteLength方法使用说明
2014/12/10 Javascript
javascript实现对表格元素进行排序操作
2015/11/18 Javascript
javascript中的面向对象
2017/03/30 Javascript
详解vue数据渲染出现闪烁问题
2017/06/29 Javascript
vue.js评论发布信息可插入QQ表情功能
2017/08/08 Javascript
jQuery实现可兼容IE6的遮罩功能详解
2017/09/19 jQuery
angularjs实现时间轴效果的示例代码
2017/11/29 Javascript
JavaScript引用类型Object常见用法实例分析
2018/08/08 Javascript
Koa 使用小技巧(小结)
2018/10/22 Javascript
了解JavaScript中let语句
2019/05/30 Javascript
Python数据类型详解(一)字符串
2016/05/08 Python
python编程通过蒙特卡洛法计算定积分详解
2017/12/13 Python
HTML5实现QQ聊天气泡效果
2017/06/26 HTML / CSS
HTML5 常用语法一览(列举不支持的属性)
2010/01/26 HTML / CSS
基于html5实现的图片墙效果
2014/10/16 HTML / CSS
以特惠价提供在线奢侈品购物:FRMODA.com
2018/01/25 全球购物
如果一个类实现了多个接口但是这些接口有相同的方法名将会怎样
2013/06/16 面试题
中专自荐信
2013/10/13 职场文书
竞争性谈判邀请书
2014/02/06 职场文书
小学毕业典礼主持词
2014/03/27 职场文书
公司年会抽奖活动主持词
2014/03/31 职场文书
车贷收入证明范本
2014/09/14 职场文书
大学生党员自我批评思想汇报
2014/10/10 职场文书
浅谈如何保证Mysql主从一致
2022/03/13 MySQL
面试分析分布式架构Redis热点key大Value解决方案
2022/03/13 Redis
vmware虚拟机打不开vmx文件怎么办 ?vmware虚拟机vmx文件打开方法
2022/04/08 数码科技