Python如何通过subprocess调用adb命令详解
2017-08-27 15:27
1126 查看
前言
本文主要给大家介绍了关于使用Python通过subprocess调用adb命令,subprocess包主要功能是执行外部命令(相对Python而言)。和shell类似。
换言之除了adb命令外,利用subprocess可以执行其他的命令,比如ls,cd等等。
subprocess 可参考: https://docs.python.org/2/library/subprocess.html
在电脑上装好adb工具,配置好adb的环境变量,先确保shell中可以调用adb命令。
代码示例
Python2.7
类 Adb,封装了一些adb的方法
import os import subprocess class Adb(object): """ Provides some adb methods """ @staticmethod def adb_devices(): """ Do adb devices :return The first connected device ID """ cmd = "adb devices" c_line = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()[0] if c_line.find("List of devices attached") < 0: # adb is not working return None return c_line.split("\t")[0].split("\r\n")[-1] # This line may have different format @staticmethod def pull_sd_dcim(device, target_dir='E:/files'): """ Pull DCIM files from device """ print "Pulling files" des_path = os.path.join(target_dir, device) if not os.path.exists(des_path): os.makedirs(des_path) print des_path cmd = "adb pull /sdcard/DCIM/ " + des_path result = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate() print result print "Finish!" return des_path @staticmethod def some_adb_cmd(): p = subprocess.Popen('adb shell cd sdcard&&ls&&cd ../sys&&ls', stdout=subprocess.PIPE, stderr=subprocess.PIPE) return_code = p.poll() while return_code is None: line = p.stdout.readline() return_code = p.poll() line = line.strip() if line: print line print "Done"
some_adb_cmd方法执行一连串的命令。各个命令之间用&&连接。
接着是一个死循环,将执行结果打印出来。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
您可能感兴趣的文章:
- Python subprocess模块详细解读
- Python IDLE 错误:IDLE''''s subprocess didn''''t make connection 的解决方案
- python subprocess 杀掉全部派生的子进程方法
- Python标准库06之子进程 (subprocess包) 详解
- Python中subprocess的简单使用示例
- Python中subprocess模块用法实例详解
- Python下的subprocess模块的入门指引
- Python 创建子进程模块subprocess详解
- python进程类subprocess的一些操作方法例子
- Python的subprocess模块总结
- Python subprocess模块学习总结
- python中subprocess批量执行linux命令
相关文章推荐
- 通过python调用adb命令实现用元素名称、id、class定位元素
- 通过python调用adb命令实现用元素名称、id、class定位元素
- 通过python调用adb命令对app进行性能测试(6 -2)
- python通过getopt模块如何获取执行的命令参数详解
- 通过python调用adb命令实现用元素名称、id、class定位元素
- 通过python调用adb命令对app进行性能测试(6 -1)
- Python用subprocess的Popen来调用系统命令
- 如何通过adb命令获取手机型号与设备信息
- Python用subprocess的Popen来调用系统命令
- Python用subprocess的Popen来调用系统命令
- [python]subprocess调用外部命令屏蔽输出
- Python用subprocess的Popen来调用系统命令
- Python用subprocess的Popen来调用系统命令
- Python用subprocess的Popen来调用系统命令
- Python用subprocess的Popen来调用系统命令
- 如何通过adb命令获取手机型号与设备信息
- Python用subprocess的Popen来调用系统命令
- Python用subprocess的Popen来调用系统命令
- python中如何调用scp命令
- Python用subprocess的Popen来调用系统命令