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实现根据指定端口探测服务器/模块部署的方法
Aug 25 Python
python使用Tkinter显示网络图片的方法
Apr 24 Python
Python简单读取json文件功能示例
Nov 30 Python
基于Python中求和函数sum的用法详解
Jun 28 Python
java中的控制结构(if,循环)详解
Jun 26 Python
如何使用Python自动控制windows桌面
Jul 11 Python
python django 原生sql 获取数据的例子
Aug 14 Python
python使用 cx_Oracle 模块进行查询操作示例
Nov 28 Python
关于win10在tensorflow的安装及在pycharm中运行步骤详解
Mar 16 Python
python环境搭建和pycharm的安装配置及汉化详细教程(零基础小白版)
Aug 19 Python
Python urllib3软件包的使用说明
Nov 18 Python
如何用python反转图片,视频
Apr 24 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
菜鸟修复电子管记
2021/03/02 无线电
PHP配置文件中最常用四个ini函数
2007/03/19 PHP
利用php实现禁用IE和火狐的缓存问题
2012/12/03 PHP
探讨:如何编写PHP扩展
2013/06/13 PHP
如何使用PHP获取指定日期所在月的开始日期与结束日期
2013/08/01 PHP
php ckeditor上传图片文件名乱码解决方法
2013/11/15 PHP
php使用fgetcsv读取csv文件出现乱码的解决方法
2014/11/08 PHP
PHP中定义数组常量(array常量)的方法
2014/11/17 PHP
PHP图像处理之imagecreate、imagedestroy函数介绍
2014/11/19 PHP
PHP magento后台无法登录问题解决方法
2016/11/24 PHP
thinkPHP中验证码的简单实现方法
2016/12/05 PHP
PHP实现的CURL非阻塞调用类
2018/07/26 PHP
javascript TextArea动态显示剩余字符
2008/10/22 Javascript
jQuery实战之品牌展示列表效果
2011/04/10 Javascript
jquery offset函数应用实例
2012/11/14 Javascript
js中方法重载如何实现?以及函数的参数问题
2013/08/01 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形网络(1)
2015/11/30 Javascript
Angular.js如何从PHP读取后台数据
2016/03/24 Javascript
JS实现touch 点击滑动轮播实例代码
2017/01/19 Javascript
JS实现点击按钮可实现编辑功能
2018/07/03 Javascript
vue实现的上拉加载更多数据/分页功能示例
2019/05/25 Javascript
如何使用Javascript中的this关键字
2020/05/28 Javascript
[00:35]DOTA2上海特级锦标赛 Newbee战队宣传片
2016/03/03 DOTA
基于numpy.random.randn()与rand()的区别详解
2018/04/17 Python
OPENCV去除小连通区域,去除孔洞的实例讲解
2018/06/21 Python
python简单验证码识别的实现方法
2019/05/10 Python
总结Python图形用户界面和游戏开发知识点
2019/05/22 Python
基于python实现检索标记敏感词并输出
2020/05/07 Python
德国团购网站:Groupon德国
2018/03/13 全球购物
精彩广告词大全
2014/03/19 职场文书
2014年大学生就业规划书
2014/04/04 职场文书
中层干部培训方案
2014/06/16 职场文书
“四风”问题对照检查材料思想汇报
2014/09/16 职场文书
学校工会工作总结2015
2015/05/19 职场文书
Oracle配置dblink访问PostgreSQL的操作方法
2022/03/21 PostgreSQL
小程序实现侧滑删除功能
2022/06/25 Javascript