Я реализую инструмент (Java-программу), который встраивает некоторые командные интерпретаторы, такие как "bc", "sage", ....Инструмент выполняет интерпретатор в потоке, перенаправляет его стандартный ввод и стандартный вывод и записывает некоторые команды в перенаправленный стандартный ввод встроенного интерпретатора (по времени).Все нормально с "bc" и "sage" после решения обычных проблем с буферизацией.
В случае с python, похоже, что интерпретатор не читает свои команды из stdin (я проверил это с помощью простого echo 1+2 | python
).
Я не нахожу , как поручить интерпретатору python читать его команды из stdin .Я прочитал много похожих вопросов, но все они пытаются прочитать data из стандартного ввода, а не команды .
Обратите внимание, что команда, отправляемая интерпретатору python, может бытьМногострочный (цикл Python "for", ...) и команды еще не доступны при запуске Python, они генерируются и отправляются интерпретатору в течение определенного времени.
Короче говоря, я хочу использовать Python какrepl (read-eval-print-loop), чтение из стандартного ввода.