Seite 1 von 1
pipes
Verfasst: Montag 27. Oktober 2003, 15:59
von alpha
Hallo,
ich habe eine Frage zu den Pipes unter Windows.
Hat jemand ein Beispiel, daß win32pipe Funktionen aus der Pythonwindowserweiterung "Pythonwin" benutzt.
Ich möchte Daten zwischen Programmen (Python-Nichtpython)
austauschen.
Danke schon mal im Voraus.
alpha
Verfasst: Montag 27. Oktober 2003, 17:27
von Milan
In welcher Art und Weise willst du denn Daten austauschen? Vielleicht tuts ein einfaches os.popen3 ja auch

Mit all den windows Extensions hab ich nämlich noch nicht beschäftigt...
datanaustausch
Verfasst: Dienstag 28. Oktober 2003, 08:34
von alpha
Hallo milan,
das C++ Programm soll Daten auf möglichst einfache Weise an das
Pythonscript schicken. Das soll dann darauf reagieren und andere
Werte wieder zurückschicken. Gibts da noch ne einfache andere
Möglichkeit?
alpha
Verfasst: Mittwoch 29. Oktober 2003, 17:53
von Milan
Und welches Programm ist das Mainprogramm, also das, welches das andere aufruft? Oder sollen beide die ganze Zeit paralell laufen?
Ich schätze mal, dass C++ Programm ruft das Pythonscript auf. Dann würde ich von C++ aus pipes an die Standartein- und ausgabe von Python setzten, sodass du mit sys.stdin.read Daten empfangen (wie aus einer Datei) und mit print oder sys.stdout.write zurückschicken.
Ist das ganze umgekehrt, also ruft Python C++ auf, dann machst du das ganze mit
Code: Alles auswählen
import os
out, in, error=os.popen3('c++programm mit parametern')
starten. Dann kannst du über out.read lesen und in.write schreiben. In C++ musst du dann über die Standarteingabe lesen und und ganz normal Daten ausgeben. (Also genau umgekehrt)
Verfasst: Mittwoch 29. Oktober 2003, 18:03
von Beyond
Es gibt v.a. auch win32com. Das würde ich mir mal anschauen, wenn man Zugriff auf das Src-C++ Programm hat.
Sonst kommts halt auf das Programm drauf an.
Mit den os.popenXX kann man relativ einfach Stdin/out/err behandeln --- ist aber nicht gerade elegant ...
vgl. XCOM, Corba, ...
cu beyond
hallo
Verfasst: Donnerstag 30. Oktober 2003, 11:48
von alpha
Danke für die Tipps. Mit den Pipes will es nicht so recht klappen.
Ich bekomme immer nur die erste Nachricht. Ich habe ein Beispiel
aus der win32pipe genommen. Da wird ein ein Dienst gestartet und dort funktioniert es auch, aber ich möchte keinen Dienst daraus machen.
Naja mal sehen. Ich werde noch etwas herumexperimentieren.
alpha
nochwas
Verfasst: Donnerstag 30. Oktober 2003, 11:50
von alpha
Hallo milan,
die beiden Programme sollen die ganze Zeit parallel laufen.
alpha