Hallo,
gibt es eigentlich irgendeinen Weg auf eine STDIN Forderung eines anderen Programmes
zu reagieren und den STDIN zu bedienen?
also eigentlich sind dies zwei Probleme:
- Loop in Python bis eine STDIN Abfrage eines anderen Programmes auftaucht
- STDIN bedienen
(frueher bei MSDOS konnte man doch auch den Tastaturinterrupt direkt ueber Assembler
ansprechen um solche Sachen zu machen)
Hat jemand Ideen wie man so etwas anpackt ?
Der Grund der Frage ist eine Parameterstudie mit einem externen Programm welches
halt andauernd Werte abfragt.
Vielen Dank fuer eure Hilfe!
Auf STDIN eines externen Programmes reagieren und schreiben
Vielleicht hilft dir pexpect[1] weiter.
[1]http://www.noah.org/wiki/pexpectexpect hat geschrieben: It runs programs and watches output. When output matches a given pattern Pexpect can respond as if a human were typing responses. Pexpect can be used for automation, testing, and screen scraping.
Vielen Dank,
was ich so darueber auf die Schnelle gelesen hab klingt ziemlich gut,
leider hab ich das Modul nicht in der Firmeninstallation, da muss noch ein bisschen
Aufwand betrieben werden, bis ich es hier testen kann, grosse Muehlen malen langsamer ...
Sobald ich das Modul hier habe werd ich mich nochmal melden,
was ich so darueber auf die Schnelle gelesen hab klingt ziemlich gut,
leider hab ich das Modul nicht in der Firmeninstallation, da muss noch ein bisschen
Aufwand betrieben werden, bis ich es hier testen kann, grosse Muehlen malen langsamer ...
Sobald ich das Modul hier habe werd ich mich nochmal melden,
Du kannst das ganze Modul zum testen auch runterladen und in den Ordner mit deinem Script packen. Da es sich nur um py-Dateien handelt, kannst du diese später einfach wieder löschen, wenn eine richtige Installation vorliegt.
Das Leben ist wie ein Tennisball.
Vielen Dank nochmal fuer die Tipps, it works!!!
ich stell hier mal ein bisschen Code hinein fuer den naechsten Interessenten:
Flusslogik durch:
ich stell hier mal ein bisschen Code hinein fuer den naechsten Interessenten:
Code: Alles auswählen
import pexpect
child=pexpect.spawn('fesolver %s n 1' %ifile_name)
child.expect(Bacon .*>)
print child.before
print child.after
child.sendline('assign "%s" unit 11' %ifile)
child.expect(Bacon .*>)
print child.before
print child.after
child.sendline('input 11')
child.expect('Bacon .*\.DES>')
print child.before
print child.after
child.sendline('.fin 1')
Code: Alles auswählen
i=child.expect ([pattern1, pattern2, pattern3, etc])