Seite 1 von 1

Daten abfangen?

Verfasst: Freitag 5. Juni 2009, 11:54
von krisi12345
Wie kann man ein Python-skript so programmieren das er bestimmte daten von z.B. einem anderen Programm abfangen kann oder umgekehrt also das das Programm Daten an ein anderes Programm sendet?

Verfasst: Freitag 5. Juni 2009, 12:00
von cofi
Kommt auf die Daten an. Geht es um Netzwerkkommunikation? InterProzessKommunikation ?

Bei letzterem (bei ersterem ist es so eigentlich auch möglich, aber vielleicht sind da auch Sockets eine Lösung) solltest du einen Blick hierauf werfen XML-RPC

Verfasst: Freitag 5. Juni 2009, 12:03
von Hyperion
Auch wenn Du das ziemlich allgemein formuliert hast, reiße ich mich mal zu folgender Aussage hin: Ja, kann man.

Du willst sicherlich auch wissen wie? ;-)

Also das einfachste ist eben, die Bordmittel der Shell dafür zu nutzen. Unter Unixoiden Betriebssystemen gibt es dafür die Pipe.

Code: Alles auswählen

echo "Hallo Welt" | ./myscript.py
Will man einem externen Programm spezielle Parameter beim Start mitgeben gibt es z.B. das "subprocess"-Modul! Guck Dir dazu die Doku an und suche danach mal zusätzlich im Forum. Da wirst Du viele Beispiele finden.

Kommunizieren Programme über Netzwerkschnittstellen muss man eben das entsprechende Protokoll implementieren. Für webservices kann man dann z.B. xmlrpc nutzen, ansonsten gibt es für viele Standards aber auch Module, etwa http, ftp oder smtp uvm.

Du siehst, es gibt also viele Möglichkeiten :-)

Wenn Du da vor einem konkreten Problem stehst, müßtest Du das schon präzisieren.

Verfasst: Freitag 5. Juni 2009, 12:13
von krisi12345
Beispiel:
In einem Programm wird ein Button gedrückt. Dann soll ein befehl gesendet werden. das ist schon mal die erste Frage: wie geht das?
In einem anderen Programm soll dieser Befehl, Text oder was auch immer abgefangen werden und dann z.B. mit print angezeigt werden.

Verfasst: Freitag 5. Juni 2009, 12:16
von Hyperion
Das ist wieder schlecht erklärt. (s.u.)
krisi12345 hat geschrieben:Beispiel:
In einem Programm wird ein Button gedrückt.
Ist das ein Programm, (1) welches Du geschrieben hast, oder eben (2) irgend ein beliebiges Programm? (Word, Firefox, ...)
krisi12345 hat geschrieben: Dann soll ein befehl gesendet werden. das ist schon mal die erste Frage: wie geht das?
Das kommt ja nun schon mal darauf an, ob Option (1) oder (2) zutreffen!
krisi12345 hat geschrieben: In einem anderen Programm soll dieser Befehl, Text oder was auch immer abgefangen werden und dann z.B. mit print angezeigt werden.
Auch dafür ist mindestens mal obiges Kriterium ausschlaggebend.

Verfasst: Freitag 5. Juni 2009, 12:18
von krisi12345
Also beide sollten ja dafür programmierte Python programme sein oder zumindest extra dafür programmiert sein.

Verfasst: Freitag 5. Juni 2009, 12:24
von Hyperion
krisi12345 hat geschrieben:Also beide sollten ja dafür programmierte Python programme sein oder zumindest extra dafür programmiert sein.
Also willst Du zwei Programme schreiben, die miteinander kommunizieren? Sollen die unabhängig voeinander laufen?
Können die per Netzwerk kommunizieren?

Verfasst: Freitag 5. Juni 2009, 12:31
von krisi12345
Ja, aber das mit dem Netzwerk könnte Ich eigentlich selber hinbekommen den würde das ja nicht so gehen das man die befehle einfach an das andere programm schickt?

Verfasst: Freitag 5. Juni 2009, 12:40
von Hyperion
krisi12345 hat geschrieben:Ja, aber das mit dem Netzwerk könnte Ich eigentlich selber hinbekommen den würde das ja nicht so gehen das man die befehle einfach an das andere programm schickt?
Sorry, aber ich gebs auf. Du antwortest irgend wie nicht direkt auf meine Fargen - dazu wäre ein quote sinnvoll ;-) Außerdem solltest Du auf die korrekte Setzung von Kommata achten. So kann man Deine Antworten nur schwer verstehen!

Worauf ist denn das "Ja, ..." eine Antwort? Es standen drei unabhängige Fragen da ...

Verfasst: Freitag 5. Juni 2009, 12:45
von krisi12345
Also willst Du zwei Programme schreiben, die miteinander kommunizieren?
JA!

Verfasst: Freitag 5. Juni 2009, 12:53
von cofi
krisi12345 hat geschrieben:
Also willst Du zwei Programme schreiben, die miteinander kommunizieren?
JA!
siehe meine Antwort.
Um Hyperions Nerven zu schonen.

Verfasst: Freitag 5. Juni 2009, 13:49
von DasIch
Solange dass nur lokal sein soll wäre D-Bus eine einfache Möglichkeit dies zu machen.

Verfasst: Freitag 5. Juni 2009, 15:23
von Leonidas
D-Bus ist zwar gut, aber für Windows-Programme eine eher unübliche Wahl.

(Und funktioniert mit ein paar Tricks auch über Remote)