python 调用系统命令的方式有很多

1.1   os.system(command)

在一个子shell中运行command命令,并返回command命令执行完毕后的退出状态。这实际上是使用C标准库函数system()实现的。这个函数在执行command命令时需要重新打开一个终端,并且无法保存command命令的执行结果。

1.2   os.popen(command,mode)

打开一个与command进程之间的管道。这个函数的返回值是一个文件对象,可以读或者写(由mode决定,mode默认是’r')。如果mode为’r',可以使用此函数的返回值调用read()来获取command命令的执行结果。

1.3   commands.getstatusoutput(command)

使用os.popen()函数执行command命令并返回一个元组(status,output),分别表示command命令执行的返回状态和执行结果。对command的执行实际上是按照{command;} 2>&1的方式,所以output中包含控制台输出信息或者错误信息。output中不包含尾部的换行符。

2.1   subprocess.call(["some_command","some_argument","another_argument_or_path"])

subprocess.call(command,shell=True)

2.2   subprocess.Popen(command, shell=True)

如果command不是一个可执行文件,shell=True不可省。

使用subprocess模块可以创建新的进程,可以与新建进程的输入/输出/错误管道连通,并可以获得新建进程执行的返回状态。使用subprocess模块的目的是替代os.system()、os.popen*()、commands.*等旧的函数或模块。

最简单的方法是使用class subprocess.Popen(command,shell=True)。Popen类有Popen.stdin,Popen.stdout,Popen.stderr三个有用的属性,可以实现与子进程的通信。

使用os.system和subprocess.call的时候都会有一闪而过的cmd黑框,让人很不爽,使用os.popen后台执行,也可以,能够返回执行的信息

使用subprocess.Popen这个方法很方便,返回tuple类型,对于结果也有好处理的方式

host = ‘192.168.200.64’

ret = subprocess.Popen("ping -n 1 -w 1 %s " % host, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

print(ret)

print(ret.communicate())

(b'\r\n\xd5\xfd\xd4\xda Ping 192.168.50.31 \xbe\xdf\xd3\xd0 32 \xd7\xd6\xbd\xda\xb5\xc4\xca\xfd\xbe\xdd:\r\n\xc7\xeb\xc7\xf3\xb3\xac\xca\xb1\xa1\xa3\r\n\r\n192.168.50.31 \xb5\xc4 Ping \xcd\xb3\xbc\xc6\xd0\xc5\xcf\xa2:\r\n    \xca\xfd\xbe\xdd\xb0\xfc: \xd2\xd1\xb7\xa2\xcb\xcd = 1\xa3\xac\xd2\xd1\xbd\xd3\xca\xd5 = 0\xa3\xac\xb6\xaa\xca\xa7 = 1 (100% \xb6\xaa\xca\xa7)\xa3\xac\r\n', b'')

python调用cmd命令会弹出黑框_python 调用cmd,不显示cmd黑框相关推荐

  1. php如何检测在另一台设备登录怎么做_如何使用Metasploit的Web Delivery Script和命令注入弹出Shell(翻译)...

    Web交付概述 Metasploit包含一个有用的模块,它在你的的设备上创建的服务器上承载一个负载.一旦目标设备连接到服务器并执行负载,就会运行web交付脚本.这个模块是通用的,因为它可以面向Pyth ...

  2. python电脑下载有问题-Python 解决火狐浏览器不弹出下载框直接下载的问题

    用火狐浏览器下载文件,总是遇到这个弹窗问题,如下图: 原因: 使用火狐浏览器,点击下载,弹出下载弹框,使用AutoITLibrary库,能够判断是否弹出了下载弹框,但因为不能定位到下载弹框,导致没有下 ...

  3. 【解决】Ubuntu命令行弹出光驱的方法

    [解决]Ubuntu命令行弹出光驱的方法 参考文章: (1)[解决]Ubuntu命令行弹出光驱的方法 (2)https://www.cnblogs.com/QuLory/archive/2012/10 ...

  4. python turtle画气球-使用python在mac上简单弹出气球消息

    如何在mac上制作一个简单的弹出气球消息.我不想使用NSUserNotification. 使用python-2.7和osx10.8.5. 弹出窗口不应该有任何按钮.弹出窗口应该会自动出现,显示消息并 ...

  5. Windows下Java调用BAT批处理不弹出cmd窗口

    常规Windows下Java调用BAT方式肯定会弹出cmd窗口 Runtime.getRuntime().exec("cmd.exe /C start D:\\test.bat") ...

  6. 股票python量化交易028-easytrader调用同花顺自动交易弹出验证码的处理

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.问题分析 二.解决办法 1.引入库 2.安装tesseract 总结 前言 大家在使用easytrader调用同花 ...

  7. python documentation弹出_为什么在使用python idle时,会弹出python documentation?

    看下能不能帮到你或者你说详细一些,要么截个图: IDLE是Python软件包自带的一个集成开发环境,初学者可以利用它方便地创建.运行.测试和调试Python程序. 一.IDLE的安装 实际上,IDLE ...

  8. 运行窗口输入命令 点击确定后弹出“打开方式”对话框的处理方法

    案例1:运行窗口输入"CMD" 弹出"打开方式"对话框的处理方法 如果像笔者一样出现了 在开始-> 运行 -> 输入"CMD"后 ...

  9. 帝国cms微信商城小程序之多规格颜色尺寸长度等sku弹出层模块封装调用

    为方便sku弹出层的使用,将其封装,下面先描述一下封装以后,调用的方法 第一步,先引入 var lsk=require("../../static/js/lsk.js"); 第二步 ...

最新文章

  1. 新视角来了:《用户体验四维度》
  2. MobileNet、GhostNet理解及测试
  3. Linux 系统常用命令汇总(二) vi 文本编辑
  4. 经典排序算法(10)——基数排序算法详解
  5. 485转换器产品功能特点及技术参数介绍
  6. hive 创建访问用户_hive创建角色并赋权
  7. arcgis不闭合线转面_【干货】ArcGIS矢量面转点、点转面,面矢量转点矢量方法讲解,值得学习!...
  8. 斯坦福大学2019年NLP课程上线,下周二开课 | 附PPT+视频
  9. 安装Windows Server 2008 R2 Cluster
  10. java创建项目出现怎么办_maven创建项目后main/java missing的解决方法
  11. 通过数据流处理-微信小程序生成临时二维码
  12. JavaScript动态网页制作宝库
  13. UITransitionView and UILayoutContainerView
  14. JVM监控及诊断工具命令行篇之jstack
  15. EditPlus文本编辑器,中文与破解实战
  16. javascript用DOM解释XML
  17. 分块矩阵乘法以及求逆应用
  18. java把小写变大写_用java实现人民币小写变大写的方法
  19. 温度补偿 matlab,基于传感器温度补偿方法的双指数函数模型的温度补偿算法设计...
  20. CF Round 542 Div1.

热门文章

  1. ATS程序功能和使用方法详解
  2. 3dmax Vray建筑可视化入门学习教程
  3. Blender与Substance painter制作三维手枪
  4. 【C4D教程】Octane渲染大师班
  5. 一文运维zookeeper
  6. Qt 编译一直死循环问题
  7. [转]ASP.NET1.0升级ASP.NET2.0问题总结
  8. 智能指针unique_ptr
  9. 人工智能和机器学习领域有哪些有趣的开源项目
  10. 【cs229-Lecture2】Linear Regression with One Variable (Week 1)(含测试数据和源码)