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中使用PyHook监听鼠标和键盘事件实例
Jul 18 Python
python实现查找两个字符串中相同字符并输出的方法
Jul 11 Python
详解Python网络爬虫功能的基本写法
Jan 28 Python
python list是否包含另一个list所有元素的实例
May 04 Python
用Python解决x的n次方问题
Feb 08 Python
Django框架自定义session处理操作示例
May 27 Python
python实现多线程端口扫描
Aug 31 Python
python使用numpy实现直方图反向投影示例
Jan 17 Python
Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例
Mar 04 Python
python中实现词云图的示例
Dec 19 Python
python读取excel数据并且画图的实现示例
Feb 08 Python
pycharm Tab键设置成4个空格的操作
Feb 26 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调用数据库的存贮过程!
2006/10/09 PHP
PHP实现股票趋势图和柱形图
2015/02/07 PHP
php两种无限分类方法实例
2015/04/21 PHP
如何使用PHP Embed SAPI实现Opcodes查看器
2015/11/10 PHP
jquery 入门教程 [翻译] 推荐
2009/08/17 Javascript
一个js写的日历(代码部分网摘)
2009/09/20 Javascript
jQuery关于导航条背景切换效果实现示例
2013/09/04 Javascript
js阻止浏览器默认行为触发的通用方法(推荐)
2016/05/15 Javascript
BootStrap使用popover插件实现鼠标经过显示并保持显示框
2016/06/23 Javascript
基于input框覆盖掉数字英文的实例讲解
2017/07/21 Javascript
nodejs 图片预览和上传的示例代码
2017/09/30 NodeJs
详解VUE中常用的几种import(模块、文件)引入方式
2018/07/03 Javascript
vue.js实现插入数值与表达式的方法分析
2018/07/06 Javascript
微信小程序实现多个按钮的颜色状态转换
2019/02/15 Javascript
判断JavaScript中的两个变量是否相等的操作符
2019/12/21 Javascript
vue中使用WX-JSSDK的两种方法(推荐)
2020/01/18 Javascript
JavaScript利用键盘码控制div移动
2020/03/19 Javascript
python启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)
2009/04/09 Python
python使用nntp读取新闻组内容的方法
2015/05/08 Python
python爬虫入门教程--HTML文本的解析库BeautifulSoup(四)
2017/05/25 Python
老生常谈Python基础之字符编码
2017/06/14 Python
Python内存管理方式和垃圾回收算法解析
2017/11/11 Python
Python生成器以及应用实例解析
2018/02/08 Python
python 去除二维数组/二维列表中的重复行方法
2019/01/23 Python
翻转数列python实现,求前n项和,并能输出整个数列的案例
2020/05/03 Python
pycharm软件实现设置自动保存操作
2020/06/08 Python
HTML5地理定位_动力节点Java学院整理
2017/07/12 HTML / CSS
千禧酒店及度假村官方网站:Millennium Hotels and Resorts
2019/05/10 全球购物
两则小学生的自我评价分享
2013/11/14 职场文书
好家长事迹材料
2014/01/23 职场文书
七年级生物教学反思
2014/01/30 职场文书
应急管理培训方案
2014/06/12 职场文书
老干部工作汇报材料
2014/10/28 职场文书
采购部年度工作总结
2015/08/13 职场文书
三好学生主要事迹材料
2015/11/03 职场文书
kubernetes集群搭建Zabbix监控平台的详细过程
2022/07/07 Servers