Я хочу сделать оболочку Python для другой командной строки.Прямое чтение/запись в подпроцесс stdin/stdout
Я хочу как можно быстрее прочитать Python's stdin
, фильтровать и перевести его, а затем быстро записать его в программу stdin
дочерней программы.
В то же время, я хочу как можно быстрее читать от дочерней программы stdout
и после небольшого массирования быстро направить ее на stdout
Python.
Модуль подпроцесса Python содержит предупреждения для использования communicate()
, чтобы избежать взаимоблокировок. Однако communicate()
не дает мне доступ к дочерней программе stdout
до тех пор, пока ребенок не завершится.
, пожалуйста, отправьте фрагмент того, как вы пытаетесь, thnx. – user1269942
@ user1269942 Я не знаю, какой API использовать. Чтение через «подпроцесс», ни один из них не подходит. – Will
, связанный с проблемой буферизации: [Подпроцесс программы Python C зависает в «для строки в iter»] (http://stackoverflow.com/q/20503671/4279) – jfs