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实现电子词典
Apr 23 Python
Python实现网站文件的全备份和差异备份
Nov 30 Python
用python处理图片实现图像中的像素访问
May 04 Python
python使用numpy读取、保存txt数据的实例
Oct 14 Python
Python3利用print输出带颜色的彩色字体示例代码
Apr 08 Python
华为2019校招笔试题之处理字符串(python版)
Jun 25 Python
使用OpenCV实现仿射变换—平移功能
Aug 29 Python
Python测试Kafka集群(pykafka)实例
Dec 23 Python
Python测试线程应用程序过程解析
Dec 31 Python
Python实现汇率转换操作
May 03 Python
python中通过pip安装库文件时出现“EnvironmentError: [WinError 5] 拒绝访问”的问题及解决方案
Aug 11 Python
使用tkinter实现三子棋游戏
Feb 25 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
PHILIPS AE3805收音机的分析打磨
2021/03/02 无线电
ThinkPHP调用common/common.php函数提示错误function undefined的解决方法
2014/08/25 PHP
JavaScrip单线程引擎工作原理分析
2010/09/04 Javascript
JQuery入门—编写一个简单的JQuery应用案例
2013/01/03 Javascript
JSON 数字排序多字段排序介绍
2013/09/18 Javascript
js实现网页标题栏闪烁提示效果实例分析
2014/11/20 Javascript
jQuery中prevUntil()方法用法实例
2015/01/08 Javascript
基于jQuery实现鼠标点击导航菜单水波动画效果附源码下载
2016/01/06 Javascript
利用jQuery设计一个简单的web音乐播放器的实例分享
2016/03/08 Javascript
BooStrap对导航条的改造实践小结
2016/09/21 Javascript
easyui messager alert 三秒后自动关闭提示的实例
2016/11/07 Javascript
用jQuery旋转插件jqueryrotate制作转盘抽奖
2017/02/10 Javascript
Vue2.0 从零开始_环境搭建操作步骤
2017/06/14 Javascript
详解vue2父组件传递props异步数据到子组件的问题
2017/06/29 Javascript
jQuery+css last-child实现选择最后一个子元素操作示例
2018/12/10 jQuery
JS二级菜单不同实现方法分析【4种方法】
2018/12/21 Javascript
Vue项目移动端滚动穿透问题的实现
2020/05/19 Javascript
vue设置默认首页的操作
2020/08/12 Javascript
[02:45]DOTA2英雄基础教程 伐木机
2013/12/23 DOTA
[03:55]显微镜下的DOTA2特别篇——430灰烬之灵神级操作
2014/06/24 DOTA
numpy 进行数组拼接,分别在行和列上合并的实例
2018/05/08 Python
PyCharm 2020.2 安装详细教程
2020/09/25 Python
python实现一个简单RPC框架的示例
2020/10/28 Python
html5简介及新增功能介绍
2020/05/18 HTML / CSS
乌克兰香水和化妆品网站:Notino.ua
2018/03/26 全球购物
维多利亚的秘密官方网站:Victoria’s Secret
2018/10/24 全球购物
美国运动鞋类和服装零售连锁店:Shoe Palace
2019/08/13 全球购物
药品促销活动方案
2014/02/14 职场文书
学历公证书范本
2014/04/09 职场文书
促销活动总结报告
2014/04/26 职场文书
反腐倡廉标语
2014/06/24 职场文书
房产电话营销开场白
2015/05/29 职场文书
讲座开场白台词和结束语
2015/05/29 职场文书
预备党员群众意见
2015/06/01 职场文书
2016十一国庆节慰问信
2015/12/01 职场文书
vscode远程免密登入Linux服务器的配置方法
2022/06/28 Servers