Если вы хотите сохранить процесс открытым и постоянно общаться с ним, вы можете использовать my_process.stdout в качестве входных данных и, например, перебирать его строки. С «общаться» вы ждете, пока процесс завершится, что было бы плохо для бесконечно запущенного процесса:)
import subprocess
my_command=["ping", "www.google.com"]
my_process=subprocess.Popen(my_command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
while True:
print( my_process.stdout.readline() )
EDIT
В этой версии мы используем re, чтобы получить только часть "time = xxms" из вывода:
import subprocess
import re
my_command=["ping", "-t", "www.google.com"]
my_process=subprocess.Popen(my_command, stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
while True:
line = my_process.stdout.readline() #read a line - one ping in this case
line = line.decode("utf-8") #decode the byte literal to string
line = re.sub("(?s).*?(time=.*ms).*", "\\1", line) #find time=xxms in the string and use only that
print(line)