Python之批量自动安装apk

引入

初步学习了python的语法,做个安装apk的自动化脚本练习一下,注意这里用的是python2,python3有差异跑不起来。

实现步骤

1、导入模块

# 内置的xml解析模块
import xml.etree.ElementTree as ET
# 用于进程连接交互的模块
import subprocess
# 系统模块
import os

2、获取应用列表

# 定义函数,获取指定目录下的指定后缀的文件名
def getFileName(path, ext):
    f_list = os.listdir(path)
    fileNames = []
    for name in f_list:
        # os.path.splitext():分离文件名与扩展名
        if os.path.splitext(name)[1] == ext:
		    fileNames.append(name)
    return fileNames


# 当前路径
curDir = os.getcwd()
print curDir
appList = getFileName(curDir, '.apk')
print ("====app list====") 
print (appList)

3、获取设备列表

cmd = r'adb devices'
devList = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
devices = []
for line in devList.stdout.readlines()[1:]:
    if 'List' not in line:
     devices.append((line.split('\t'))[0])
devices.pop()
print ("===devices===")
print (devices)

4、安装apk

print ("===install apk===")
for dev in devices:
    for apk in appList:
        installCmd = r'adb -s %s install -r %s\%s ' % (dev, curDir, apk)
        print (installCmd)
        result = subprocess.Popen(installCmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        print(result.stdout.readlines())

小结

初学python,还是应该多实践和调试,才会发现问题,这里我罗列下觉得应该注意的问题:
1、代码块缩进要用空格,不能用TAB
2、python2和python3有区别,这里用的是python2
3、adb install的apk路径名不能有空格
4、兼容不同的系统,文件路径拼接用os.path.join(curDir, ‘apklist.xml’)
5、字符串前面加r,可以保持字符串不被转义

参考资料

使用python批量给设备安装apk
Python中的Subprocess模块
Python使用ElementTree处理XML

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值