Я запускаю python программу (my_file.py)
, которая в конце процесса становится приглашением python. Поэтому я не могу выбраться из while
l oop. p.stdout.readline()
ждет, что что-то случится.
Любое предложение, как сломать while
l oop. p.pole()
также, вероятно, останется null
, поскольку с my_file.py
связана некоторая автоматизация фона.
Мне нужно, чтобы условие прерывания было подсказкой ">>>" без активности.
import subprocess
from subprocess import Popen, PIPE
import sys, time
for iteration in range(25):
p=Popen(r"python my_file.py",
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
shell=False,
encoding='utf-8',
errors='replace',
universal_newlines=True)
while True:
realtime_output = p.stdout.readline()
if realtime_output == '': #and p.poll() is not None:
break
else:
print(realtime_output.strip(), flush=True)
print("--------------- PythonSV session for {} iteration is complete -----------\n\n".format(iteration + 1))
#subprocess.Popen("taskkill /F /T /PID %i" % p.pid, shell=True)
Popen.terminate(p)
time.sleep(1)