python获取实时命令行输出


我们平时用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)

在调用的命令没有结束之前,依然可以输出其结果.

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM