一般我们运行dos命令,会有两种需求,一种是需要收集执行结果,如ip、device等;一种是不需要收集结果,如杀死或开启某个服务。

对应的在python中就要封装两种方法,来分别实现这两种需求。

1、引入包

import os

2、只执行不收集结果

os.system(command)

3、执行并手机结果

os.popen(command).readlines()

4、代码实现

 #coding=utf-8
import os class DosCmd:
'''
用来封装windows执行dos命令,分两种,一种是收集执行结果,一种是不需要收集执行结果
'''
def excute_cmd_result(self,command):
'''
执行command命令,并返回执行结果
:param command: 传入要执行的命令,字符串格式
:return:返回执行结果,列表格式
'''
result_list = []
result = os.popen(command).readlines()
for i in result:
if i == '\n':
continue
result_list.append(i.strip('\n'))#strip() 方法用于移除字符串头尾指定的字符
return result_list def excute_cmd(self,command):
'''
仅执行command命令,不收集执行结果
:param command: 传入要执行的命令,字符串格式
'''
os.system(command) if __name__=="__main__":
dos = DosCmd()
print dos.excute_cmd_result('adb devices')
dos.excute_cmd('adb devices')

appium自动化测试框架——在python脚本中执行dos命令的更多相关文章

  1. 如何在Python脚本中调用外部命令(就像在linux shell或Windows命令提示符下输入一样)

    如何在Python脚本中调用外部命令(就像在linux shell或Windows命令提示符下输入一样) python标准库中的subprocess可以解决这个问题. from subprocess ...

  2. shell脚本中执行source命令不生效的解决办法

    一个shell脚本文件中有一个source命令,使用bash a.sh命令执行后source命令进行验证没有生效. 这是因为在shell脚本中执行source会看到效果,但是shell脚本执行完后再次 ...

  3. C#中执行Dos命令

    //dosCommand Dos命令语句 public string Execute(string dosCommand) { ); } /// <summary> /// 执行DOS命令 ...

  4. 在c++程序中执行DOS命令

    转自博客:http://blog.csdn.net/ypist/article/details/8485049 #1,system()方式 在C盘根目录下新建文件夹,名称为12: system(&qu ...

  5. Django框架----在Python脚本中调用Django环境

    在项目根目录下新建脚本文件script.py import os if __name__ == '__main__': os.environ.setdefault("DJANGO_SETTI ...

  6. shell脚本中执行sql命令

    1.mysql 数据库表信息 2.shell脚本(a.sh)信息 #!/bin/sh mysql -u root << myInsert insert into test.t values ...

  7. shell脚本中执行mysql命令

    1.mysql -hhostname -uuser -ppsword -e "mysql_cmd" 2. mysql -hhostname -uuser -ppsword < ...

  8. 在Python程序中执行linux命令

    import commands print commands.getstatusoutput('ls') 输出: (0, '1.py\nwork.nfs') 参考文档: https://blog.cs ...

  9. 【转载】DOS 系统和 Windows 系统有什么关系?为什么windows系统下可以执行dos命令?

    作者:bombless 因为不同的系统都叫 Windows ,这些系统在界面上也有一定连续性并且因此可能造成误解,所以有必要稍微梳理一下几个不同的 Windows 系统.首先是 DOS 上的一个图形界 ...

随机推荐

  1. Android OpenGL 播放视频学习

    1, 初步接触Open GL: http://www.cnblogs.com/TerryBlog/archive/2010/07/09/1774475.html 使用GLSurfaceView和Ren ...

  2. 7-6 公路村村通(30 分) 【prime】

    7-6 公路村村通(30 分) 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本. 输入格式: 输入数据包括城镇数目正整数N(≤10 ...

  3. 【Leetcode-easy】Remove Duplicates from Sorted Array

    题目要求:删除排好序的含有重复元素的数组.返回去除重复后的数组长度,并更新原始数组.不能使用额外空间. 思路:要不额外的使用内存空间,那么只有遍历数组,count保持下一个不重复的数字,遍历过程中如果 ...

  4. iOS Assertion failure in -[UITableView _classicHeightForRowAtIndexPath:]

    Assertion failure in -[UITableView _classicHeightForRowAtIndexPath:], /SourceCache/UIKit_Sim/UIKit-3 ...

  5. npm使用淘宝镜像安装包

    npm使用registry这个属性指定仓库,因此配置这个属性即可.修改npm配置属性的几种方法详见官方文档. 这里只贴出修改registry的方法,以下三种任意一种即可: 修改~/.npmrc文件(没 ...

  6. 分享知识-快乐自己:IDEA 导入(web)项目并部署到 Tomcat

    IDEA 导入 (WEB)项目并部署到 Tomcat 1):导入 Web 项目 2):首先更改 JDK 环境  右键项目: 第一步:点击 Modules  第二步:点击 Libraries 第三步:点 ...

  7. DB2 Error Messages (Sorted by SQLCODE)

    DB2 Error Messages (Sorted by SQLCODE) DB2 Error Messages (Sorted by SQLCODE) SQLCODE SQLSTATE Descr ...

  8. 关于分支和主干Merge时要注意的事项

    现在我们同时在主干和分支上进行开发, 当你需要将主干上某一工程代码 Merge到分支上(或者相反)时, 不要用check out 然后全部覆盖的方法, 这样不会关联源上的任何 history, 而且需 ...

  9. scaleform中ActionScript和UnrealScript的交互

    转自:http://www.cnblogs.com/NEOCSL/p/4174134.html scaleform是制作UI的好工具: 1.他可以解放程序员用代码控制的UI效果,例如平移,旋转和缩放都 ...

  10. java的clone()的使用

    clone()方法的约定 首先明确的是clone()是object的方法.Cloneable接口没有任何方法,它只起到标识的作用.(java的原型模式有用到) Cloneable接口的目的是作为对象的 ...