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
pipes
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
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
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 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)
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')
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
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
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
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