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中的socket模块使用代理实例
May 29 Python
django model去掉unique_together报错的解决方案
Oct 18 Python
Python reduce()函数的用法小结
Nov 15 Python
Python 记录日志的灵活性和可配置性介绍
Feb 27 Python
python特性语法之遍历、公共方法、引用
Aug 08 Python
python最小生成树kruskal与prim算法详解
Jan 17 Python
浅谈Python的条件判断语句if/else语句
Mar 21 Python
深入浅析Python中的迭代器
Jun 04 Python
Python3.0 实现决策树算法的流程
Aug 08 Python
tensorflow 获取checkpoint中的变量列表实例
Feb 11 Python
Python实现仿射密码的思路详解
Apr 23 Python
python exit出错原因整理
Aug 31 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和XSL stylesheets转换XML文档
2006/10/09 PHP
图片存储与浏览一例(Linux+Apache+PHP+MySQL)
2006/10/09 PHP
PHP和XSS跨站攻击的防范
2007/04/17 PHP
php计算2个日期的差值函数分享
2015/02/02 PHP
php比较两个字符串长度的方法
2015/07/13 PHP
WordPress中创建用户角色的相关PHP函数使用详解
2015/12/25 PHP
CL vs ForZe BO5 第三场 2.13
2021/03/10 DOTA
Dom 结点创建 基础知识
2011/10/01 Javascript
JS数组去掉重复数据只保留一条的实现代码
2016/08/11 Javascript
js 打开新页面在屏幕中间的实现方法
2016/11/02 Javascript
微信小程序(六):列表上拉加载下拉刷新示例
2017/01/13 Javascript
js省市区级联查询(插件版&无插件版)
2017/03/21 Javascript
Angular.js去除页面中显示的空行方法示例
2017/03/30 Javascript
Angualrjs和bootstrap相结合实现数据表格table
2017/03/30 Javascript
简单谈谈React中的路由系统
2017/07/25 Javascript
微信小程序 自定义消息提示框
2017/08/06 Javascript
Vue.JS项目中5个经典Vuex插件
2017/11/28 Javascript
基于vue2.0动态组件及render详解
2018/03/17 Javascript
Nodejs 和 Electron ubuntu下快速安装过程
2018/05/04 NodeJs
Python Queue模块详细介绍及实例
2016/12/27 Python
零基础使用Python读写处理Excel表格的方法
2019/05/02 Python
关于numpy数组轴的使用详解
2019/12/05 Python
Fossil加拿大官网:化石手表、手袋、首饰及配饰
2019/04/23 全球购物
德国、奥地利和瑞士最大的旅行和度假门户网站:HolidayCheck
2019/11/14 全球购物
与C++相比,Java中的数组有什么不同
2014/03/25 面试题
通信工程毕业生求职信
2013/11/16 职场文书
大学生文员专业个人求职信范文
2014/01/05 职场文书
开业庆典答谢词
2014/01/18 职场文书
违反校纪校规检讨书
2014/02/15 职场文书
2014年综治宣传月活动总结
2014/04/28 职场文书
个人剖析材料范文
2014/09/30 职场文书
接收函格式
2015/01/30 职场文书
2015年高一班主任工作总结
2015/05/13 职场文书
刑事申诉状范文
2015/05/20 职场文书
Java实现聊天机器人完善版
2021/07/04 Java/Android
Oracle以逗号分隔的字符串拆分为多行数据实例详解
2021/07/16 Oracle