我们平时用os.system和subprocess执行命令并获取返回值, 但获取返回值都是在命令完全执行完毕后,如果命令持续输出不会结束,该如何获取实时输出呢?
exer16.py
import time
def fun():
for i in range(6):
print("{:*^20}".format(i))
time.sleep(1)
fun()
exer15.py
import subprocess
cmd="python exer16.py"
ret = subprocess.Popen(cmd,shell=True,
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
cwd=r"C:\Users\23798\Desktop\desktop\my_note\my_project")
l=[]
for i in iter(ret.stdout.readline,b""):
print(i.decode().strip())
l.append(i.decode().strip())
print("finally------>",l)
在调用的命令没有结束之前,依然可以输出其结果.