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 相关文章推荐
wxPython框架类和面板类的使用实例
Sep 28 Python
在服务器端实现无间断部署Python应用的教程
Apr 16 Python
连接Python程序与MySQL的教程
Apr 29 Python
基于Python 装饰器装饰类中的方法实例
Apr 21 Python
啥是佩奇?使用Python自动绘画小猪佩奇的代码实例
Feb 20 Python
Python逐行读取文件中内容的简单方法
Feb 26 Python
提升Python程序性能的7个习惯
Apr 14 Python
opencv导入头文件时报错#include的解决方法
Jul 31 Python
利用Python产生加密表和解密表的实现方法
Oct 15 Python
Scrapy框架基本命令与settings.py设置
Feb 06 Python
解决pyinstaller打包运行程序时出现缺少plotly库问题
Jun 02 Python
基于Python的接口自动化unittest测试框架和ddt数据驱动详解
Jan 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
解决中英文字符串长度问题函数
2007/01/16 PHP
php 显示指定路径下的图片
2009/10/29 PHP
深入php多态的实现详解
2013/06/09 PHP
实例讲解PHP面向对象之多态
2014/08/20 PHP
浅谈PHP封装CURL
2019/03/06 PHP
如何在centos8自定义目录安装php7.3
2019/11/28 PHP
用jquery和json从后台获得数据集的代码
2011/11/07 Javascript
jquery动画1.加载指示器
2012/08/24 Javascript
js中的scroll和offset 使用比较的实例与分析
2013/09/29 Javascript
js日期、星座的级联显示代码
2014/01/23 Javascript
JavaScript 实现鼠标拖动元素实例代码
2014/02/24 Javascript
jQuery实现的fixedMenu下拉菜单效果代码
2015/08/24 Javascript
jQuery计算文本框字数及限制文本框字数的方法
2016/03/01 Javascript
js获取时间函数及扩展函数的方法
2016/10/30 Javascript
webpack入门+react环境配置
2017/02/08 Javascript
bootstrap fileinput 插件使用项目总结(经验)
2017/02/22 Javascript
详解webpack介绍&安装&常用命令
2017/06/29 Javascript
React Native AsyncStorage本地存储工具类
2017/10/24 Javascript
详解vue-cli项目中用json-sever搭建mock服务器
2017/11/02 Javascript
Seajs源码详解分析
2019/04/02 Javascript
详解K-means算法在Python中的实现
2017/12/05 Python
Python zip函数打包元素实例解析
2019/12/11 Python
Python 列表中的修改、添加和删除元素的实现
2020/06/11 Python
日本一家专门经营各种箱包的大型网站:Traveler Store
2016/08/03 全球购物
东方电视购物:东方CJ
2016/10/12 全球购物
高清安全摄像头系统:Lorex Technology
2018/07/20 全球购物
印度在线杂货店:bigbasket
2018/08/23 全球购物
华纳兄弟工作室的官方授权商店:WB Shop
2018/11/30 全球购物
物理专业大学生职业生涯规划书
2014/02/07 职场文书
美容院合作经营协议书
2014/10/10 职场文书
2016年会开场白台词
2015/06/01 职场文书
幼儿园庆元旦主持词
2015/07/06 职场文书
2015年度环卫处工作总结
2015/07/24 职场文书
Vue通过懒加载提升页面响应速度
2021/05/10 Vue.js
MySQL系列之七 MySQL存储引擎
2021/07/02 MySQL
Python接口自动化之文件上传/下载接口详解
2022/04/05 Python