python脚本执行CMD命令并返回结果的例子


Posted in Python onAugust 14, 2019

最近写脚本的时想要用python直接在脚本中去执行cmd命令,并且将返回值打印出来供下面调用,所以特意查了下,发现主要有一下几种方式来实现,很简单:

就拿执行adb, adb shell, adb devices 举例

1.第一种方法 os 模块的 os.sysytem()

import os

os.system('adb)

执行括号中系统命令,没有返回值

2.第二种方法:os模块的 os.popen()

if __name__=='__main__':
 import os 
 a = os.popen('adb')
 #此时打开的a是一个对象,如果直接打印的话是对象内存地址
 
 text = a.read()
 #要用read()方法读取后才是文本对象
 
 print(text)
 
 a.close()#打印后还需将对象关闭
 
 #下面执行adb devices同理
 b = os.popen('adb devices')
 text2 = b.read()
 print(text2)
 b.close()

下面是第二种方法的打印结果:

#adb返回的结果:
 
Android Debug Bridge version 1.0.40
Version 4986621
Installed as D:\androidsdk\platform-tools\adb.exe
 
global options:
 -a   listen on all network interfaces, not just localhost
 -d   use USB device (error if multiple devices connected)
 -e   use TCP/IP device (error if multiple TCP/IP devices available)
 -s SERIAL use device with given serial (overrides $ANDROID_SERIAL)
 -t ID  use device with given transport id
 -H   name of adb server host [default=localhost]
 -P   port of adb server [default=5037]
 -L SOCKET listen on given socket for adb server [default=tcp:localhost:5037]
 
general commands:
 devices [-l]    list connected devices (-l for long output)
 help      show this help message
 version     show version num
 
 
#adb devices 返回的结果:
List of devices attached
740dc3d1 device

未完待续....

以下内容为2019年5月更新

os.popen方法较os.system()而言是获取控制台输出的内容,那就用os.popen的方法了,popen返回的是一个file对象,跟open打开文件一样操作了,r是以读的方式打开,今天把写法优化了一下:

# coding:utf-8
import os
 
# popen返回文件对象,跟open操作一样
with os.popen(r'adb devices', 'r') as f:
 text = f.read()
print(text) # 打印cmd输出结果
 
# 输出结果字符串处理
s = text.split("\n") # 切割换行
result = [x for x in s if x != ''] # 列生成式去掉空
print(result)
 
# 可能有多个手机设备
devices = [] # 获取设备名称
for i in result:
 dev = i .split("\tdevice")
 if len(dev) >= 2:
  devices.append(dev[0])
 
if not devices:
 print('当前设备未连接上')
else:
 print('当前连接设备:%s' % devices)

控制台输出如下:

python脚本执行CMD命令并返回结果的例子

以上这篇python脚本执行CMD命令并返回结果的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
从零学Python之hello world
May 21 Python
Python中生成器和yield语句的用法详解
Apr 17 Python
Python中装饰器兼容加括号和不加括号的写法详解
Jul 05 Python
Python微信库:itchat的用法详解
Aug 14 Python
教你用 Python 实现微信跳一跳(Mac+iOS版)
Jan 04 Python
面向初学者的Python编辑器Mu
Oct 08 Python
python 多线程重启方法
Feb 18 Python
解决Django中修改js css文件但浏览器无法及时与之改变的问题
Aug 31 Python
详解centos7+django+python3+mysql+阿里云部署项目全流程
Nov 15 Python
使用Python操作ArangoDB的方法步骤
Feb 02 Python
Windows下实现将Pascal VOC转化为TFRecords
Feb 17 Python
Python restful框架接口开发实现
Apr 13 Python
用Python调用win命令行提高工作效率的实例
Aug 14 #Python
python基础教程之while循环
Aug 14 #Python
Python 实例方法、类方法、静态方法的区别与作用
Aug 14 #Python
Python学习笔记之Break和Continue用法分析
Aug 14 #Python
Python学习笔记之While循环用法分析
Aug 14 #Python
Python 使用 PyMysql、DBUtils 创建连接池提升性能
Aug 14 #Python
Python学习笔记之For循环用法详解
Aug 14 #Python
You might like
jQuery EasyUI API 中文文档 - NumberBox数字框
2011/10/13 Javascript
关于jQuery参考实例2.0 用jQuery选择元素
2013/04/07 Javascript
jQuery Validate 验证,校验规则写在控件中的具体实例
2014/02/27 Javascript
JavaScript实现向OL列表内动态添加LI元素的方法
2015/03/21 Javascript
基于jQuery实现的菜单切换效果
2015/10/16 Javascript
深入学习JavaScript的AngularJS框架中指令的使用方法
2016/03/05 Javascript
jQuery EasyUI tree 使用拖拽时遇到的错误小结
2016/10/10 Javascript
Bootstrap中datetimepicker使用小结
2016/12/28 Javascript
hovertree插件实现二级树形菜单(简单实用)
2016/12/28 Javascript
js实现把图片的绝对路径转为base64字符串、blob对象再上传
2016/12/29 Javascript
angularjs实现多张图片上传并预览功能
2017/02/24 Javascript
Angular使用$http.jsonp发送跨站请求的方法
2017/03/16 Javascript
react.js CMS 删除功能的实现方法
2017/04/17 Javascript
vue.js声明式渲染和条件与循环基础知识
2017/07/31 Javascript
Node.js 使用递归实现遍历文件夹中所有文件
2017/09/18 Javascript
Vue 中批量下载文件并打包的示例代码
2017/11/20 Javascript
Vue的轮播图组件实现方法
2018/03/03 Javascript
使用xampp将angular项目运行在web服务器的教程
2019/09/16 Javascript
jQuery实现王者荣耀手风琴效果
2020/01/17 jQuery
微信小程序实现左滑删除效果
2020/11/18 Javascript
微信小程序弹窗禁止页面滚动的实现代码
2020/12/30 Javascript
[03:01]2014DOTA2国际邀请赛 小组赛7月13日TOPPLAY
2014/07/14 DOTA
[36:05]DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs Optic
2018/04/01 DOTA
Python处理字符串之isspace()方法的使用
2015/05/19 Python
Django数据库连接丢失问题的解决方法
2018/12/29 Python
详解CSS 3 中的 calc() 方法
2018/01/12 HTML / CSS
澳洲的服装老品牌:SABA
2018/02/06 全球购物
一道Delphi上机题
2012/06/04 面试题
简短证婚人证婚词
2014/01/09 职场文书
保安的辞职报告怎么写
2014/01/20 职场文书
考试作弊检讨书大全
2014/02/18 职场文书
中学生操行评语
2014/04/24 职场文书
阳光体育活动总结
2014/04/30 职场文书
会议通知
2015/04/15 职场文书
萤火虫之墓观后感
2015/06/05 职场文书
CentOS安装Nginx并部署vue
2022/04/12 Servers