python执行shell命令并输出日志

使用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)

 

posted @   潇潇暮鱼鱼  阅读(171)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示