popen show what is happening code example

Example 1: python subprocess print stdout while process running

from subprocess import Popen, PIPE, CalledProcessError

with Popen(cmd, stdout=PIPE, bufsize=1, universal_newlines=True) as p:
    for b in p.stdout:
        print(b, end='') # b is the byte from stdout

if p.returncode != 0:
    raise CalledProcessError(p.returncode, p.args)

Example 2: python write subprocess stdout stderr to file

with open("stdout.txt","wb") as out, open("stderr.txt","wb") as err:
    subprocess.Popen("ls",stdout=out,stderr=err)