Python Programm zur Einbettung eines interaktiven Programms

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
miwieg
User
Beiträge: 2
Registriert: Samstag 15. Juli 2006, 15:30

Python Programm zur Einbettung eines interaktiven Programms

Beitragvon miwieg » Samstag 15. Juli 2006, 15:46

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!
Benutzeravatar
DatenMetzgerX
User
Beiträge: 398
Registriert: Freitag 28. April 2006, 06:28
Wohnort: Zürich Seebach (CH)

Beitragvon DatenMetzgerX » Samstag 15. Juli 2006, 15:56

versuchs mit subprocess
BlackJack

Beitragvon BlackJack » Samstag 15. Juli 2006, 23:25

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.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder