I was tring for so long to catch the stdout of a python scrypt in subprocess in real time.
SOLUTION
main.py
import subprocess import io import time import sys if __name__ == '__main__': command = ["python", "-u", "createValue.py"] # "-u" changed my life p = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) for line in iter(p.stdout.readline, b''): print(">>> " + str(line.rstrip())) createValue.py
import time import sys i = 0 while i < 5: print("I like pizza "+ str(i)) # sys.stdout.flush() # This is an another solution time.sleep(1.5) i += 1 Why every solution on Internet work without "-u" for them but not on my PC ? I use Python 3.6.5