首页 > 系统相关 >python执行shell命令并输出日志

python执行shell命令并输出日志

时间:2024-03-28 17:34:41浏览次数:30  
标签:npm 输出 shell python __ process command install 日志

使用npm install时,由于npm install控制台输出的构建信息是加载条,之前用的python脚本不能输出,且加载条完之后的输出也不能获取。因为需要使用新的脚本,使用下面的脚本python执行npm install 可以输出加载条之后的日志。process.poll()为返回码,正确运行返回码为0,若不为0则退出系统。while True进入一个无限循环,用于持续地读取子进程的标准输出

runDeploynew.py

#!/usr/bin/env python3
#coding: utf-8

import subprocess
import sys
def run_deploy_new(command):
    process = subprocess.Popen(command,shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

    while True:
        output = process.stdout.readline()
        if output == b'' and process.poll() is not None:
            break
        if output:
            # 输出加载条信息
            print(output.decode().strip())
    if process.poll() != 0:
        sys.exit(1)


#if __name__ == "__main__":
#    run_deploy_new("npm install")

调用该脚本,其中command可以是任何shell命令。

#!/usr/bin/env python3
#coding: utf-8

from runDeploynew import run_deploy_new

def fun1():
    command = 'npm install'
    run_deploy_new(command)

 

标签:npm,输出,shell,python,__,process,command,install,日志
From: https://www.cnblogs.com/xiaoxiaomuyuyu/p/18102212

相关文章

  • 想成为一名Python web开发工程师,你需要具备什么技能?
    前言在大家的印象中,Python被广泛的应用在人工智能、自动化运维、自动化测试、机器学习等方向,并且有着不可或缺的作用;但其实Python的应用领域不止这些,Python还可以进行后台开发,正因如此市场上有了Pythonweb开发的岗位需求。那么想要从事Pythonweb开发,需要掌握哪些技能呢?......
  • python之类8.1
    一、介绍类类(class):用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例实例化:创建一个类的实例,类的具体对象。对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法方法:类中定义的函数类变......
  • python-json数据、pyecharts的入门使用(折线图)
    目录1. json数据格式 1.1 json.dumps()1.2 json.loads()2. pyecharts的入门使用(折线图)2.1  pyecharts使用的简单示例2.1.1 导包2.1.2 创建对象2.1.3 添加x轴数据2.1.4 添加y轴数据2.1.5 设置全局配置项2.1.6 render()方法,生成图像3. ......
  • Nginx日志统计分析
    Nginx日志统计分析1.统计IP访问量(独立ip访问数量)​awk'{print$1}'access.log|sort-n|uniq|wc-l​2.查看某一时间段的IP访问量(4-5点)​grep"07/Apr/2017:0[4-5]"access.log|awk'{print$1}'|sort|uniq-c|sort-nr|wc-l​3.查看访问最频繁的前100个......
  • Flask python 开发篇:模型(model)Flask-SQLAlchemy的使用
    Flask-SQLAlchemy实现模型一、为什么使用模型?二、Flask-SQLAlchemy的引入三、使用Flask-SQLAlchemy构建模型文件3.1、安装扩展3.2、配置3.3、实战使用3.4、与蓝图相结合使用一、为什么使用模型?上一篇分享了蓝图的使用,也说蓝图相当于了php中控制器+路由的使用,那根......
  • hbase - [03] 客户端常用命令(hbase shell)
     1、列出所有namespacelist_namespace2、创建namespacecreate_namespace'ns_name'3、修改namespace属性alter_namespace'nsname',{METHOD=>'set','PROPERTY_NAME'=>'PROPERTY_VALUE'}4、删除namespace属性alter_namesp......
  • 关于 PowerShell, Bash 命令 多参数换行问题
    1.  PowerShell 命令参数过长换行demo[直接在PowerShell客户端中运行].\subspace-farmer-windows-x86_64-skylake-gemini-3h-2024-mar-25.exe`farm--reward-addressst7KWHjV2EGwbcYgsYM4jxJjQ6CKUVgMn3C9FFFCohT1fmJfB`path=D:\working\Pow\subspace\farm,size......
  • [oeasy]python0012_程序写错了怎么办
    运行python文件_报错处理_NameError......
  • [Python]-基础-1.环境部署
    [Python]基础——环境部署&知识补充一、环境部署1.1软件下载1.1.1版本选择内置函数是Python自带的函数,不同版本的Python,其内置函数在数量和使用上大不相同,尤其是Python2和Python3大版本之间的迭代,教程全程采用Python3.8.3进行代码演示,为了避免版本兼容冲突,希望......
  • Python Flask-Mail实现邮件发送
    使用falsk-mail发送邮件一、邮件发送的扩展二、根据文档,总结发送邮件的流程三、实现邮件发送功能3.1、安装扩展3.2、配置3.3、发送邮件(创建mail、message实例并发送)3.4、发送带附件的邮件3.5、批量发送邮件3.6、异步发送邮件四、写在最后一、邮件发送的扩展关于......