Как многократно вводить данные в другую программу на python

Я хочу сделать файл Python, который открывает две программы. Эти две программы должны получать входные данные друг от друга несколько раз. Я открыл две программы и знаю, как вводить данные для одной программы, но я не знаю, как вводить несколько раз для одной программы и получать выходные данные многократно. Мой код такой.

subprocess.call("/usr/bin/gcc -o p1 "+path1,shell=True)
subprocess.call("/usr/bin/gcc -o p2 "+path2,shell=True)
cmd_1 = subprocess.Popen("./p1",shell = True,stdin = subprocess.PIPE,stdout = subprocess.PIPE,stderr = subprocess.PIPE)
cmd_2 = subprocess.Popen("./p2",shell = True,stdin = subprocess.PIPE,stdout = subprocess.PIPE,stderr = subprocess.PIPE)
std_out_1 = cmd_1.stdout
std_out_2 = cmd_2.stdout
for line in std_out_1.readlines():
    print(line.decode('ascii'))
for line in std_out_2.readlines():
    print(line.decode('ascii'))

Теперь эта программа просто получает вывод программы. Я хочу дать ввод N раз для каждой программы и получить вывод N раз. Поэтому я ожидаю, что мой код будет таким.

give_input(n)
for i in range(n):
    t_1 = get_output(t_2) //give input t_2, and get output t_1
    t_2 = get_output(t_1) //give input t_1, and get output t_2

Ответы на вопрос(2)

Ваш ответ на вопрос