Daten abfangen?

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.
Antworten
Benutzeravatar
krisi12345
User
Beiträge: 205
Registriert: Mittwoch 4. März 2009, 16:56
Wohnort: Das schöne München
Kontaktdaten:

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?
[url=http://www.pc-tutos.de/Tutorials/Tutorials.htm]Wie verändert man Spiele oder Computer nach Wunsch? www.PC-Tutos.de[/url]
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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.
Benutzeravatar
krisi12345
User
Beiträge: 205
Registriert: Mittwoch 4. März 2009, 16:56
Wohnort: Das schöne München
Kontaktdaten:

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.
[url=http://www.pc-tutos.de/Tutorials/Tutorials.htm]Wie verändert man Spiele oder Computer nach Wunsch? www.PC-Tutos.de[/url]
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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.
Benutzeravatar
krisi12345
User
Beiträge: 205
Registriert: Mittwoch 4. März 2009, 16:56
Wohnort: Das schöne München
Kontaktdaten:

Also beide sollten ja dafür programmierte Python programme sein oder zumindest extra dafür programmiert sein.
[url=http://www.pc-tutos.de/Tutorials/Tutorials.htm]Wie verändert man Spiele oder Computer nach Wunsch? www.PC-Tutos.de[/url]
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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?
Benutzeravatar
krisi12345
User
Beiträge: 205
Registriert: Mittwoch 4. März 2009, 16:56
Wohnort: Das schöne München
Kontaktdaten:

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?
[url=http://www.pc-tutos.de/Tutorials/Tutorials.htm]Wie verändert man Spiele oder Computer nach Wunsch? www.PC-Tutos.de[/url]
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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 ...
Benutzeravatar
krisi12345
User
Beiträge: 205
Registriert: Mittwoch 4. März 2009, 16:56
Wohnort: Das schöne München
Kontaktdaten:

Also willst Du zwei Programme schreiben, die miteinander kommunizieren?
JA!
[url=http://www.pc-tutos.de/Tutorials/Tutorials.htm]Wie verändert man Spiele oder Computer nach Wunsch? www.PC-Tutos.de[/url]
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

krisi12345 hat geschrieben:
Also willst Du zwei Programme schreiben, die miteinander kommunizieren?
JA!
siehe meine Antwort.
Um Hyperions Nerven zu schonen.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Solange dass nur lokal sein soll wäre D-Bus eine einfache Möglichkeit dies zu machen.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

D-Bus ist zwar gut, aber für Windows-Programme eine eher unübliche Wahl.

(Und funktioniert mit ein paar Tricks auch über Remote)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten