Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 8, 2009 06:13:35

darvin11
От:
Зарегистрирован: 2009-10-21
Сообщения: 32
Репутация: +  0  -
Профиль   Отправить e-mail  

subprocess communicate() без ожидания завершения процесса

В скрипте открываю подпроцесс:
coolproc = subprocess.Popen(“coolprog”, stdin=subprocess.PIPE,\
stdout=subprocess.PIPE, stderr=subprocess.PIPE)

coolprog - это клевая прога, которая забирает из stdin данные из скрипта, затем в stdout отдает, затем забирает, затем отдает… И так много-много раз.
Скрипт должен соответсвенно в нее писать и читатать. Много раз, поочередно. Как это сделать?
coolproc.communicate(sendstring) - отправляет sendstring и ждет когда программа завершиться. А как отправить данные и забить? Или прочитать данные в цикле, пока ключевое слово не встретится



Офлайн

#2 Ноя. 8, 2009 22:32:20

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

subprocess communicate() без ожидания завершения процесса

У открытого popen есть stdin/stdout/stderr.
Может, стоит глянуть на subprocess.Popen.communicate / _communicate и сделать что вам нужно?



Офлайн

#3 Ноя. 9, 2009 06:18:55

darvin11
От:
Зарегистрирован: 2009-10-21
Сообщения: 32
Репутация: +  0  -
Профиль   Отправить e-mail  

subprocess communicate() без ожидания завершения процесса

Андрей Светлов
У открытого popen есть stdin/stdout/stderr.
Может, стоит глянуть на subprocess.Popen.communicate / _communicate и сделать что вам нужно?
stdin.write - то что нужно.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version