大家好,小编为大家解答python自动安装第三方库的命令的问题。很多人还不知道python自动安装软件并执行,现在让我们一起来看看吧!
引入
初步学习了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