Python3 执行系统命令并获取实时回显功能


Posted in Python onJuly 09, 2019

下面先给大家介绍下Python3 执行系统命令并获取实时回显

最近在改造一些打包的逻辑,原来在 Windows 下是基于批处理制作的,由于批处理用起来不是很方便,一些实时的计算基本无法胜任,所以转向 Python3。但在以前脚本的基础上很多是需要调用系统命令的比如 VS 编译一个项目,我们需要获取实时的回显知道编译的结果和进度。所以就有了以下方法:

@staticmethod
def __external_cmd(cmd, code="utf8"):
  print(cmd)
  process = subprocess.Popen(cmd, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
  while process.poll() is None:
    line = process.stdout.readline()
    line = line.strip()
    if line:
      print(line.decode(code, 'ignore'))

在使用时直接调用 __external_cmd 方法,传入你要执行的系统命令,根据回显内容设置以下编码就可以了。这样用起来还是比较方便的。

ps:下面看下Python执行系统命令并获得输出的几种方法

方法一:

import os
p = os.popen('uptime')
x=p.read()
print x

方法二:

import subprocess
res = subprocess.Popen('uptime',shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE,close_fds=True)
result = res.stdout.readlines()

总结

以上所述是小编给大家介绍的Python3 执行系统命令并获取实时回显功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python 装饰器功能以及函数参数使用介绍
Jan 27 Python
python基础教程之自定义函数介绍
Aug 29 Python
python下MySQLdb用法实例分析
Jun 08 Python
Python 类与元类的深度挖掘 I【经验】
May 06 Python
opencv改变imshow窗口大小,窗口位置的方法
Apr 02 Python
Python下简易的单例模式详解
Apr 08 Python
Pandas删除数据的几种情况(小结)
Jun 21 Python
python中树与树的表示知识点总结
Sep 14 Python
基于keras 模型、结构、权重保存的实现
Jan 24 Python
django form和field具体方法和属性说明
Jul 09 Python
如何用tempfile库创建python进程中的临时文件
Jan 28 Python
virtualenv隔离Python环境的问题解析
Jun 21 Python
利用python开发app实战的方法
Jul 09 #Python
python设置环境变量的作用和实例
Jul 09 #Python
python版百度语音识别功能
Jul 09 #Python
利用Python实现Shp格式向GeoJSON的转换方法
Jul 09 #Python
python实现集中式的病毒扫描功能详解
Jul 09 #Python
python 图片去噪的方法示例
Jul 09 #Python
python 使用plt画图,去除图片四周的白边方法
Jul 09 #Python
You might like
PHP处理大量表单字段的便捷方法
2015/02/07 PHP
编写PHP脚本过滤用户上传的图片
2015/07/03 PHP
PHP可变函数学习小结
2015/11/29 PHP
PHP操作mysql数据库分表的方法
2016/06/09 PHP
利用ajax和PHP实现简单的流程管理
2017/03/23 PHP
javascript vvorld 在线加密破解方法
2008/11/13 Javascript
IFrame跨域高度自适应实现代码
2012/08/16 Javascript
js中split和replace的用法实例
2015/02/28 Javascript
js判断登陆用户名及密码是否为空的简单实例
2016/05/16 Javascript
利用n 升级工具升级Node.js版本及在mac环境下的坑
2017/02/15 Javascript
深入理解Vue2.x的虚拟DOM diff原理
2017/09/27 Javascript
浅谈 Vue 项目优化的方法
2017/12/16 Javascript
JavaScript去掉数组重复项的方法分析【测试可用】
2018/07/19 Javascript
js删除对象/数组中null、undefined、空对象及空数组方法示例
2018/11/14 Javascript
详解Vue-cli3 项目在安卓低版本系统和IE上白屏问题解决
2019/04/14 Javascript
仿iPhone通讯录制作小程序自定义选择组件的实现
2019/05/23 Javascript
ES6模板字符串和标签模板的应用实例分析
2019/06/25 Javascript
vue通过数据过滤实现表格合并
2020/11/30 Javascript
JavaScript实现留言板案例
2020/03/17 Javascript
Vue3+elementui plus创建项目的方法
2020/12/01 Vue.js
深入讲解Java编程中类的生命周期
2016/02/05 Python
windows下安装python的C扩展编译环境(解决Unable to find vcvarsall.bat)
2018/02/21 Python
python 根据字典的键值进行排序的方法
2019/07/24 Python
浅谈Python3实现两个矩形的交并比(IoU)
2020/01/18 Python
详解如何使用Pytest进行自动化测试
2021/01/14 Python
英国最专业的健身器材供应商之一:Best Gym Equipment
2017/12/22 全球购物
美国Curacao百货连锁店网站:iCuracao.com
2019/07/20 全球购物
MIXIT官网:俄罗斯最大的化妆品公司之一
2020/01/25 全球购物
JSF面试题:Jsf中的核心类用那些?有什么作用?LiftCycle六大生命周期是什么?
2014/07/17 面试题
医科大学生毕业的自我评价分享
2013/11/12 职场文书
白莲教口号
2014/06/18 职场文书
2015年感恩母亲节活动方案
2015/05/04 职场文书
道歉信范文
2015/05/12 职场文书
地球上的星星观后感
2015/06/02 职场文书
学习新党章心得体会2016
2016/01/15 职场文书
解决Laravel使用验证时跳转到首页的问题
2021/11/17 PHP