skypa hat geschrieben:Benutzt man das subprocess-modul um Hooks zu programmieren? Und wie sieht das unter Python aus?
Hi skypa!
Ich arbeite unter Visual Basic 6 sehr oft mit Hooks, die Python-Programme aufrufen. Dort verwende ich eine spezielle Art von ShellWait, damit mir das Programm während der Ausführung nicht wegläuft.
Unter Python kannst du mit subprocess andere Programme aufrufen und darauf warten, bis die Arbeit getan ist. Das wäre für mich so ein Hook, wenn ich z.B. in einem Ordner Python-Programme hätte, die nur unter bestimmten Umständen vom Hauptprogramm aufgerufen werden und evt. etwas an das Hauptprogramm zurück geben.
Du kannst an das aufgerufene Programm, Parameter über die Kommandozeile übergeben. Du kannst über so einen Kommandozeilenparameter den Pfad zu einer Datei mit Daten übergeben. Du kannst aber auch direkt über STDIN des aufgerufenen Programms Daten übergeben.
http://www.python-forum.de/topic-4941.html
Daten bekommst du z.B. über STDOUT des aufgerufenen Programms zurück. Über STDOUT kannst du soger gepickelte Daten zurück geben. Du könntest aber auch die Ergebnisdaten in eine Datei schreiben und diese vom Hauptprogramm auslesen lassen. So habe ich es z.B. bei meinem letzten Projekt gemacht.
Das Handelskassenprogramm, ein Visual Basic 6 Programm, erstellt eine INI-Datei. Das Python-Programm wird mit ShellWait aufgerufen. Dabei wird über Kommandozeilenparameter der Pfad zur Ini-Datei übergeben. Das Python-Programm liest die INI-Datei aus und weiß daraufhin was es zu tun hat. In der INI-Datei steht auch ein Pfad zur erwarteten Ergebnisdatei. Das Python-Programm erstellt eine neue INI-Datei und schreibt die Ergebnisse in diese Datei. Sobals das Python-Programm beendet ist, liest das VB6-Programm die Erebnis-INI-Datei aus und arbeitet weiter. Das hört sich komplizierter an als es ist.
mfg
Gerold