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中使用poplib模块收取邮件的教程
Apr 29 Python
Python数据分析之真实IP请求Pandas详解
Nov 18 Python
python 开发的三种运行模式详细介绍
Jan 18 Python
python九九乘法表的实例
Sep 26 Python
python opencv之SIFT算法示例
Feb 24 Python
Python基于生成器迭代实现的八皇后问题示例
May 23 Python
python Dijkstra算法实现最短路径问题的方法
Sep 19 Python
python sklearn包——混淆矩阵、分类报告等自动生成方式
Feb 28 Python
pyspark 随机森林的实现
Apr 24 Python
python接入支付宝的实例操作
Jul 20 Python
tensorflow学习笔记之tfrecord文件的生成与读取
Mar 31 Python
python脚本框架webpy的url映射详解
Nov 20 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
环境会对咖啡种植有什么影响
2021/03/03 咖啡文化
snoopy PHP版的网络客户端提供本地下载
2008/04/15 PHP
PHP查询MySQL大量数据的时候内存占用分析
2011/07/22 PHP
解析CI的AJAX分页 另类实现方法
2013/06/27 PHP
php实现格式化多行文本为Js可用格式
2015/04/15 PHP
Yii框架用户登录session丢失问题解决方法
2017/01/07 PHP
php求数组全排列,元素所有组合的方法总结
2017/03/14 PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
2017/05/11 PHP
Javascript中暂停功能的实现代码
2007/03/04 Javascript
Jquery截取中文字符串的实现代码
2010/12/22 Javascript
javascript基本包装类型介绍
2015/04/10 Javascript
JavaScript的React Web库的理念剖析及基础上手指南
2016/05/10 Javascript
AngularJS入门教程之数据绑定用法示例
2016/11/01 Javascript
Vue.js父与子组件之间传参示例
2017/02/28 Javascript
JavaScript 实现 Tab 点击切换实例代码
2017/03/25 Javascript
动态统计当前输入内容的字节、字符数的实例详解
2017/10/27 Javascript
vue 表单输入格式化中文输入法异常问题
2018/05/30 Javascript
JS实现动态生成html table表格的方法分析
2018/07/11 Javascript
解决Vue在封装了Axios后手动刷新页面拦截器无效的问题
2018/11/08 Javascript
Vue+Element实现网页版个人简历系统(推荐)
2019/12/31 Javascript
JavaScript中ES6规范中let和const的用法和区别
2020/08/06 Javascript
详解Vue中的watch和computed
2020/11/09 Javascript
swiperjs实现导航与tab页的联动
2020/12/13 Javascript
vue-video-player 断点续播的实现
2021/02/01 Vue.js
python批量提交沙箱问题实例
2014/10/08 Python
20个常用Python运维库和模块
2018/02/12 Python
对python 矩阵转置transpose的实例讲解
2018/04/17 Python
Django使用AJAX调用自己写的API接口的方法
2019/03/06 Python
python分数表示方式和写法
2019/06/26 Python
Spring实战之使用util:命名空间简化配置操作示例
2019/12/09 Python
python对批量WAV音频进行等长分割的方法实现
2020/09/25 Python
运动会入场解说词300字
2014/01/25 职场文书
家长会欢迎标语
2014/06/24 职场文书
2014年“向国旗敬礼”网上签名寄语活动方案
2014/09/27 职场文书
2015初中团委工作总结
2015/07/28 职场文书
《7的乘法口诀》教学反思
2016/02/18 职场文书