Python如何通过subprocess调用adb命令详解


Posted in Python onAugust 27, 2017

前言

本文主要给大家介绍了关于使用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 相关文章推荐
使用Python编写一个模仿CPU工作的程序
Apr 16 Python
利用Python实现图书超期提醒
Aug 02 Python
python使用正则表达式的search()函数实现指定位置搜索功能
Nov 10 Python
Python实现的单向循环链表功能示例
Nov 10 Python
python利用有道翻译实现&quot;语言翻译器&quot;的功能实例
Nov 14 Python
ubuntu安装sublime3并配置python3环境的方法
Mar 15 Python
Python 调用PIL库失败的解决方法
Jan 08 Python
实例讲解Python中浮点型的基本内容
Feb 11 Python
学习python可以干什么
Feb 26 Python
python实现电子产品商店
Feb 26 Python
PyQt5实现暗黑风格的计时器
Jul 29 Python
Python enumerate函数遍历数据对象组合过程解析
Dec 11 Python
Python中序列的修改、散列与切片详解
Aug 27 #Python
Python正确重载运算符的方法示例详解
Aug 27 #Python
深入学习Python中的上下文管理器与else块
Aug 27 #Python
python利用MethodType绑定方法到类示例代码
Aug 27 #Python
Python中使用haystack实现django全文检索搜索引擎功能
Aug 26 #Python
python读取excel表格生成erlang数据
Aug 26 #Python
使用Python实现简单的服务器功能
Aug 25 #Python
You might like
php中addslashes函数与sql防注入
2014/11/17 PHP
php基于jquery的ajax技术传递json数据简单实例
2016/04/15 PHP
Laravel如何友好的修改.env配置文件详解
2017/06/07 PHP
laravel 实现用户登录注销并限制功能
2019/10/24 PHP
跟着JQuery API学Jquery 之三 筛选
2010/04/09 Javascript
使用js 设置url参数
2013/07/08 Javascript
js根据鼠标移动速度背景图片自动旋转的方法
2015/02/28 Javascript
js简单实现Select互换数据的方法
2015/08/17 Javascript
jQuery实现移动端滑块拖动选择数字效果
2015/12/24 Javascript
Angular2-primeNG文件上传模块FileUpload使用详解
2017/01/14 Javascript
javascript 网页进度条简单实例
2017/02/22 Javascript
纯js的右下角弹窗实例
2017/03/12 Javascript
JS实现延迟隐藏功能的方法(类似QQ头像鼠标放上展示信息)
2017/12/28 Javascript
jquery使用FormData实现异步上传文件
2018/10/25 jQuery
vuex实现购物车的增加减少移除
2020/06/28 Javascript
[38:32]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第二局
2016/02/26 DOTA
[03:11]完美世界DOTA2联赛PWL DAY8集锦
2020/11/09 DOTA
python批量复制图片到另一个文件夹
2018/09/17 Python
解决python3捕获cx_oracle抛出的异常错误问题
2018/10/18 Python
对pandas通过索引提取dataframe的行方法详解
2019/02/01 Python
印度网上药店:1mg
2017/10/13 全球购物
西班牙香水和化妆品网上商店:Douglas
2017/10/29 全球购物
波兰最大的度假胜地和城市公寓租赁运营商:Sun & Snow
2018/10/18 全球购物
Harrods美国:英国最大的百货公司
2018/11/04 全球购物
在校生党员自我评价
2013/09/25 职场文书
药剂专业学生求职信范文
2013/12/28 职场文书
商务助理求职信范文
2014/04/20 职场文书
党员群众路线承诺书
2014/05/20 职场文书
中国梦口号
2014/06/13 职场文书
医院义诊活动总结
2014/07/04 职场文书
生日宴会家属答谢词
2015/09/29 职场文书
小组口号霸气押韵
2015/12/24 职场文书
小学一年级语文教学反思
2016/03/03 职场文书
2016年学校安全教育月活动总结
2016/04/06 职场文书
基于Python编写简易版的天天跑酷游戏的示例代码
2022/03/23 Python
一起来看看Vue的核心原理剖析
2022/03/24 Vue.js