python打印子进程进度
创建脚本,run.py
import sys
import subprocess
from time import sleep
from multiprocessing import Process
def process_bar(bar="#"):
print("%s" % bar,end="")
def execute_local_command(cmd):
"执行本地命令"
p = subprocess.Popen(cmd,shell=True)
print("开始执行:",end="")
while None == p.poll():
show_process_bar = Process(target=process_bar,args=("#",))
show_process_bar.start()
show_process_bar.join()
sleep(1)
print("[完成]") if p.returncode == 0 else print("[失败]")
execute_local_command(sys.argv[1])
创建测试脚本,a.sh
#!/bin/bash
sleep 5
exit -2
运行:python3 run.py ./a.sh
结果
liwl@work:[~]
$ python run.py ./a.sh
开始执行:#####[失败]
liwl@work:[~]
使用场景
- 调用耗时比较长的本地脚本,比如
sudo apt install com.qq.weixin.deepin -y
命令