Подпроцесс.общаться в PythonPython

Программы на Python
Anonymous
Подпроцесс.общаться в Python

Сообщение Anonymous »

Код: Выделить всё

from subprocess import Popen, PIPE, STDOUT

p = Popen(['bc', '-q', '-i'], stdout=PIPE, stdin=PIPE, stderr=STDOUT)
while True:
if p.poll() is None:
data = input("> ")
data = data + "\n"
out, err = p.communicate(data.encode())
print(out.decode().rstrip())
else:
break
используя функцию связи в Popen, я отправляю данные в канал связи на стандартный ввод. в моей функции печати я печатаю вывод. но в моем ядре входное значение также печатается. Я знаю, что это глупый вопрос, кто-нибудь объяснит, почему это происходит.
выход:
python mathserver. пи

Код: Выделить всё

> 1+2
1+2
3
Я думал, что проблема возникает в функции communication()

Подробнее здесь: https://stackoverflow.com/questions/782 ... -in-python

Вернуться в «Python»