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 查找文件夹下所有文件 实现代码
Jul 01 Python
使用优化器来提升Python程序的执行效率的教程
Apr 02 Python
Python自定义类的数组排序实现代码
Aug 28 Python
Python爬虫包BeautifulSoup实例(三)
Jun 17 Python
Python多线程原理与用法详解
Aug 20 Python
解决pandas .to_excel不覆盖已有sheet的问题
Dec 10 Python
python根据文章标题内容自动生成摘要的实例
Feb 21 Python
解决python 上传图片限制格式问题
Oct 30 Python
解决python彩色螺旋线绘制引发的问题
Nov 23 Python
Python通过4种方式实现进程数据通信
Mar 12 Python
python 使用elasticsearch 实现翻页的三种方式
Jul 31 Python
Python使用for生成列表实现过程解析
Sep 22 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中的常见魔术方法功能作用及用法实例
2015/07/01 PHP
Yii调试查看执行SQL语句的方法
2016/07/15 PHP
php 5.4 全新的代码复用Trait详解
2017/01/05 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
2017/11/10 PHP
PHP实现给定一列字符,生成指定长度的所有可能组合示例
2019/06/22 PHP
解决laravel上传图片之后,目录有图片,但是访问不到(404)的问题
2019/10/14 PHP
PHP读取文件,解决中文乱码UTF-8的方法分析
2020/01/22 PHP
jQuery 使用手册(七)
2009/09/23 Javascript
Js+Flash实现访问剪切板操作
2012/11/20 Javascript
js 调用父窗口的具体实现代码
2013/07/15 Javascript
键盘上一张下一张兼容IE/google/firefox等浏览器
2014/01/28 Javascript
JavaScript实现列出数组中最长的连续数
2014/12/29 Javascript
JS简单循环遍历json数组的方法
2016/04/22 Javascript
js date 格式化
2017/02/15 Javascript
Bootstrap 表单验证formValidation 实现表单动态验证功能
2017/05/17 Javascript
详解Vue中过度动画效果应用
2017/05/25 Javascript
在iframe中使bootstrap的模态框在父页面弹出问题
2017/08/07 Javascript
vue-cli 构建骨架屏的方法示例
2018/11/08 Javascript
vue-iview动态新增和删除的方法
2020/06/17 Javascript
解决ant design vue 表格a-table二次封装,slots渲染的问题
2020/10/28 Javascript
Python3一行代码实现图片文字识别的示例
2018/01/15 Python
python求质数列表的例子
2019/11/24 Python
基于Python实现下载网易音乐代码实例
2020/08/10 Python
python文件排序的方法总结
2020/09/13 Python
KIKO MILANO西班牙官网:意大利领先的化妆品和护肤品品牌
2019/05/03 全球购物
电子专业毕业生自我鉴定
2014/01/22 职场文书
护士毕业实习感言
2014/03/05 职场文书
青春励志演讲稿范文
2014/08/25 职场文书
在校大学生自我评价范文
2014/09/12 职场文书
施工安全协议书范本
2014/09/26 职场文书
闪闪的红星观后感
2015/06/08 职场文书
解决redis sentinel 频繁主备切换的问题
2021/04/12 Redis
手把手教你使用TensorFlow2实现RNN
2021/07/15 Python
Java面试题冲刺第十八天--Spring框架3
2021/08/07 面试题
java如何实现获取客户端ip地址的示例代码
2022/04/07 Java/Android
多线程Spring通过@Scheduled实现定时任务
2022/05/25 Java/Android