[python] subprocess - komunikace s interaktivnim programem

kraliczek kraliczek na seznam.cz
Pondělí Duben 23 18:03:55 CEST 2007


Ahoj,
Potreboval bych si napsat nadstavbu nad program, ktery komunikuje interaktivne pres stdin a stdout. Nasel jsem si knihovnu subprocess v pythonu. Komunikace na stdin toho spusteneho programu funguje, ale nejsem schopen vytahnout data, ktere ten program pise na stdout...

from subprocess import *
p = Popen('program', stdin=PIPE, stdout=PIPE)
p.stdin.write('programe pipni\n') # spusteny program pipne a vypise hlaseni na stdout
p.stdout.readline()

Kdyz program po spusteni vypise na stdout nejake radky, tak je pomoci p.stdout.readline() jsem schopen vypsat, ale nevim jak zjistit, ze precteny radek je posledni a dal zatim neni co cist -> kdyz v teto chvili prikaz p.stdout.readline() spustim, zustane cekat a ikdyz na stdout program potom nejake data posle...
(+ s tim souvisejici - jak prijmout data, ktera nekonci znakem noveho radku?)

Mohl by mi nekdo poradit, jak na to/kde je chyba ?

Diky 


Další informace o konferenci Python