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实现屏幕截图的代码及函数详解
Oct 01 Python
Python列表和元组的定义与使用操作示例
Jul 26 Python
python 3.6 +pyMysql 操作mysql数据库(实例讲解)
Dec 20 Python
如何使用 Pylint 来规范 Python 代码风格(来自IBM)
Apr 06 Python
详解Python 装饰器执行顺序迷思
Aug 08 Python
python合并已经存在的sheet数据到新sheet的方法
Dec 11 Python
Python实现计算字符串中出现次数最多的字符示例
Jan 21 Python
python3 小数位的四舍五入(用两种方法解决round 遇5不进)
Apr 11 Python
Python简单基础小程序的实例代码
Apr 28 Python
PyQT实现菜单中的复制,全选和清空的功能的方法
Jun 17 Python
pytorch实现从本地加载 .pth 格式模型
Feb 14 Python
Windows下Pycharm远程连接虚拟机中Centos下的Python环境(图文教程详解)
Mar 19 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乱码问题,UTF-8乱码常见问题小结
2012/04/09 PHP
PHP中执行MYSQL事务解决数据写入不完整等情况
2014/01/07 PHP
php获取文件名后缀常用方法小结
2015/02/24 PHP
ThinkPHP自定义函数解决模板标签加减运算的方法
2015/07/03 PHP
php 访问oracle 存储过程实例详解
2017/01/08 PHP
php 查找数组元素提高效率的方法详解
2017/05/05 PHP
Laravel框架自定义分页样式操作示例
2020/01/26 PHP
WEB高性能开发之疯狂的HTML压缩
2010/06/19 Javascript
JavaScript的document对象和window对象详解
2010/12/30 Javascript
javascript eval(func())使用示例
2013/12/05 Javascript
怎么判断js脚本加载完成
2014/02/28 Javascript
js模拟淘宝网的多级选择菜单实现方法
2015/08/18 Javascript
深入分析node.js的异步API和其局限性
2016/09/05 Javascript
JS实现移动端按首字母检索城市列表附源码下载
2017/07/05 Javascript
Vue-cli Eslint在vscode里代码自动格式化的方法
2018/02/23 Javascript
jQuery 改变P标签文本值方法
2018/02/24 jQuery
Taro集成Redux快速上手的方法示例
2018/06/21 Javascript
详解Vue CLI 3.0脚手架如何mock数据
2018/11/23 Javascript
命令行批量截图Node脚本示例代码
2019/01/25 Javascript
ES6 如何改变JS内置行为的代理与反射
2019/02/11 Javascript
vue工程全局设置ajax的等待动效的方法
2019/02/22 Javascript
微信小程序环境下将文件上传到OSS的方法步骤
2019/05/31 Javascript
layui radio点击事件实现input显示和隐藏的例子
2019/09/02 Javascript
vue+element表格导出为Excel文件
2019/09/26 Javascript
VUE中V-IF条件判断改变元素的样式操作
2020/08/09 Javascript
解决Vue大括号字符换行踩的坑
2020/11/09 Javascript
Python中使用PDB库调试程序
2015/04/05 Python
python中数据爬虫requests库使用方法详解
2018/02/11 Python
Python实现两个list求交集,并集,差集的方法示例
2018/08/02 Python
Django中如何使用sass的方法步骤
2019/07/09 Python
Python测试模块doctest使用解析
2019/08/10 Python
Prometheus开发中间件Exporter过程详解
2020/11/30 Python
Baby Tulai澳大利亚:美国婴儿背带品牌
2018/10/15 全球购物
优秀员工评语
2014/02/10 职场文书
2016年员工政治思想表现评语
2015/12/02 职场文书
民政局2016年“六一”儿童节慰问活动总结
2016/04/06 职场文书