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 相关文章推荐
django admin 后台实现三级联动的示例代码
Jun 22 Python
在python中pandas的series合并方法
Nov 12 Python
详解Python进阶之切片的误区与高级用法
Dec 24 Python
django框架面向对象ORM模型继承用法实例分析
Jul 29 Python
Python numpy多维数组实现原理详解
Mar 10 Python
python自动下载图片的方法示例
Mar 25 Python
浅谈python 中的 type(), dtype(), astype()的区别
Apr 09 Python
PyCharm+Pipenv虚拟环境开发和依赖管理的教程详解
Apr 16 Python
Python super()函数使用及多重继承
May 06 Python
python 使用多线程创建一个Buffer缓存器的实现思路
Jul 02 Python
python 中的9个实用技巧,助你提高开发效率
Aug 30 Python
python如何发送带有附件、正文为HTML的邮件
Feb 27 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
千呼万唤始出来,DOTA2勇士令状不朽宝藏Ⅱ现已推出
2020/08/25 DOTA
PHP中static关键字原理的学习研究分析
2011/07/18 PHP
PHP共享内存用法实例分析
2016/02/12 PHP
Laravel下生成验证码的类
2017/11/15 PHP
删除重复数据的算法
2006/11/23 Javascript
Javascript 个人笔记(没有整理,很乱)
2007/07/07 Javascript
JAVASCRIPT keycode总结
2009/02/04 Javascript
javascript学习笔记(七)利用javascript来创建和存储cookie
2011/04/08 Javascript
关于jquery性能最佳实践的讨论,与求教
2012/03/30 Javascript
JQuery操作tr和td内容的方法实例
2013/03/06 Javascript
JavaScript栏目列表隐藏/显示简单实现
2013/04/03 Javascript
jQuery中parents()方法用法实例
2015/01/07 Javascript
jquery实现超简洁的TAB选项卡效果代码
2015/08/28 Javascript
JavaScript中日期函数的相关操作知识
2016/08/03 Javascript
Jquery Easyui验证组件ValidateBox使用详解(20)
2016/12/18 Javascript
js 单引号替换成双引号,双引号替换成单引号的实现方法
2017/02/16 Javascript
AngularJs点击状态值改变背景色的实例
2017/12/18 Javascript
JavaScript实现异步图像上传功能
2018/07/12 Javascript
用vuex写了一个购物车H5页面的示例代码
2018/12/04 Javascript
MockJs结合json-server模拟后台数据
2020/08/26 Javascript
vue-router结合vuex实现用户权限控制功能
2019/11/14 Javascript
vue页面加载时的进度条功能(实例代码)
2020/01/13 Javascript
vue.js click点击事件获取当前元素对象的操作
2020/08/07 Javascript
Python进程间通信之共享内存详解
2017/10/30 Python
Python八大常见排序算法定义、实现及时间消耗效率分析
2018/04/27 Python
django框架使用方法详解
2019/07/18 Python
pycharm配置当鼠标悬停时快速提示方法参数
2019/07/31 Python
python opencv实现证件照换底功能
2019/08/19 Python
python实现的生成word文档功能示例
2019/08/23 Python
Scrapy-Redis之RedisSpider与RedisCrawlSpider详解
2020/11/18 Python
计算 s=(x*y)1/2,用两个宏定义来实现
2016/08/11 面试题
竞争上岗实施方案
2014/03/21 职场文书
竞争与合作演讲稿
2014/05/12 职场文书
升职演讲稿范文
2014/05/23 职场文书
大学生毕业个人总结
2015/02/15 职场文书
社区志愿者服务心得体会
2016/01/22 职场文书