Seite 1 von 1

Python Programm zur Einbettung eines interaktiven Programms

Verfasst: Samstag 15. Juli 2006, 15:46
von miwieg
Hallo!

Ich möchte ein Python Programm schreiben, dass ein anderes interaktives Programm aufruft und anschließend in dieses Programm schreibt und liest. Ich habe das schon einmal in Python gemacht, aber jetzt bette ich ein anderes Programm ein und ich bekomme nichts aus dem Stream gelesen (weder über STDOUT noch STDERR):

Code: Alles auswählen

import os
import re
import popen2
import sys

infl = sys.argv[0]
posTag = sys.argv[1]



outs, ins, err = popen2.popen3("..../abney-chunker-1k/bin/stemmer")

ins.write(infl + "\t" + posTag)
ins.flush()

counter = 0
while (counter < 4):
    line = outs.readline()
    line2 = err.readline()
    print line
    print line2
    counter = counter + 1
Das Problem ist, dass das Programm bei "outs.readline()" hängen bleibt. Wenn ich anstatt "outs.readline()" "err.readline()" als erstes aufrufe, passiert das gleiche. Was mache ich falsch?

Vielen Dank!

Verfasst: Samstag 15. Juli 2006, 15:56
von DatenMetzgerX
versuchs mit subprocess

Verfasst: Samstag 15. Juli 2006, 23:25
von BlackJack
Die Anwendung die Du startest wird wahrscheinlich die Ausgabe puffern. Um andere Programme auf diese Art zu steuern nimmt man am besten das pexpect Modul.