Python взаимодействие двух процессов в фоновом режиме
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import subprocess
cmd = ["python3", "/home/user/python/python0.py"]
cmd1 = ["python3", "/home/user/python/pytho2.py"]
p1 = subprocess.Popen(cmd, stdout=subprocess.PIPE)
p2 = subprocess.Popen(cmd1, stdout=p1.stdin, stdin=subprocess.PIPE)
data = p1.communicate()
В данном примере я передаю поток вывода одной программы другой но взаимодействие не происходит
Ответы (1 шт):
Автор решения: Михаил Муругов
→ Ссылка
Не совсем понятно, что Вы хотите сделать. Я так понял, Вы хотите stdout от одной команды перенаправить в stdin другой команды.
stdout.py
print(f"ohayo, ya {__file__}")
stdin.py
a = input()
print(f"Hello, im {__file__} and i got")
print(a)
print("from my stdin")
from subprocess import Popen, PIPE
a = Popen(["python", "stdout.py"], stdout=PIPE)
b = Popen(["python", "stdin.py"], stdin=a.stdout, stdout=PIPE)
print(b.stdout.read().decode().strip())
Вывод
Hello, im stdin.py and i got
ohayo, ya stdout.py
from my stdin