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 相关文章推荐
centos下更新Python版本的步骤
Feb 12 Python
python根据出生年份简单计算生肖的方法
Mar 27 Python
python简单分割文件的方法
Jul 30 Python
Python连接SQLServer2000的方法详解
Apr 19 Python
python DataFrame 修改列的顺序实例
Apr 10 Python
PyQt5每天必学之创建窗口居中效果
Apr 19 Python
Python列表切片操作实例总结
Feb 19 Python
python实现得到当前登录用户信息的方法
Jun 21 Python
pytorch torch.expand和torch.repeat的区别详解
Nov 05 Python
pyinstaller打包程序exe踩过的坑
Nov 19 Python
python线程池如何使用
May 28 Python
keras中epoch,batch,loss,val_loss用法说明
Jul 02 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
基于php split()函数的用法详解
2013/06/05 PHP
php实现的DateDiff和DateAdd时间函数代码分享
2014/08/16 PHP
PHP封装curl的调用接口及常用函数详解
2018/05/31 PHP
php+layui数据表格实现数据分页渲染代码
2019/10/26 PHP
理解Javascript_15_作用域分配与变量访问规则,再送个闭包
2010/10/20 Javascript
jQuery写fadeTo示例代码
2014/02/21 Javascript
jquery日历控件实现方法分享
2014/03/07 Javascript
jquery代码实现简单的随机图片瀑布流效果
2015/04/20 Javascript
jQuery实现的选择商品飞入文本框动画效果完整实例
2016/08/10 Javascript
javascript数组对象常用api函数小结(连接,插入,删除,反转,排序等)
2016/09/20 Javascript
原生JS获取元素集合的子元素宽度实例
2016/12/14 Javascript
js实现下拉菜单效果
2017/03/01 Javascript
JS请求servlet功能示例
2017/06/01 Javascript
Easyui使用Dialog行内按钮布局的实例
2017/07/27 Javascript
值得收藏的vuejs安装教程
2017/11/21 Javascript
基于Taro的微信小程序模板消息-获取formId功能模块封装实践
2019/07/15 Javascript
vue 获取及修改store.js里的公共变量实例
2019/11/06 Javascript
vue-dplayer 视频播放器实例代码
2019/11/08 Javascript
javascript实现扫雷简易版
2020/08/18 Javascript
请求时token过期自动刷新token操作
2020/09/11 Javascript
python实现划词翻译
2020/04/23 Python
详解Python中break语句的用法
2015/05/14 Python
pycharm重置设置,恢复默认设置的方法
2018/10/22 Python
对Python3+gdal 读取tiff格式数据的实例讲解
2018/12/04 Python
python实现电子书翻页小程序
2019/07/23 Python
Django自定义模板过滤器和标签的实现方法
2019/08/21 Python
python tornado修改log输出方式
2019/11/18 Python
Python工程师必考的6个经典面试题
2020/06/28 Python
索尼巴西商店:Sony巴西
2019/06/21 全球购物
澳大利亚最大的在线美发和美容零售商之一:My Hair Care & Beauty
2019/08/24 全球购物
自主招生自荐信范文
2013/12/04 职场文书
保险公司年会主持词
2014/03/22 职场文书
整改通知书格式
2015/04/22 职场文书
致运动员的广播稿
2015/08/19 职场文书
入门学习Go的基本语法
2021/07/07 Golang
Redis特殊数据类型Geospatial地理空间
2022/06/01 Redis