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)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?