Wie mit Python : Script ruf anderes Script mit Parameter auf
Verfasst: Mittwoch 20. November 2013, 15:42
				
				Moin zusammen,
da ich auf meinem Raspberry Pi Python haben, möchte ich gerne mehr machen und Python etwas besser lernen.
Auf meinem RPi habe ich einen kleinen Wetterdaten-Logger, der mit Python, pyserial, Funksensoren und einem Funkmodul Temperatur und Luftfeuchtigkeit sammelt und in einer Webseite darstellt.
Wie ist der beste Weg in Python, um aus einem laufenden Python Script ein anderes Python Script mit Übergabe von Werten zu starten?
Ich habe einiges im Web gefunden.
- import des anderen Scripts (Modul)
- os.system verwenden (soll aber langsam sein)
Warum das ganze?
Wie oben beschrieben verwende ich ein Python Script, welches in einer Endlosschleife den seriellen Port (USB Funkstick - CUL868) überwacht.
Wenn Daten empfangen werden, werden diese aufbereitet und in eine SQLite DB geschrieben.
Nun habe ich das Gefühl, dass die Verarbeitung einzelner Daten etwas dauern kann und so neue ankommende Daten nicht berücksichtigt werden. Erst wenn die Verarbeitung fertig ist, kann wieder empfangen werden.
Jetzt war mein Gedanke, dass ich das so mache wie mit einer CMD Datei, die eine andere CMD Datei aufruft und nicht auf das Beenden dieser wartet. Somit läuft das Hauptprogramm und überwacht den Port. Wenn was ankommt, übergibt es einfach die Daten an das andere Script und überwacht weiter. Unter Windows wird jeder Aufruf der 2. CMD Datei in einem neuen Prozess gestartet. Somit behindern sich die Scripte nicht und alles ist bestens.
Wie macht man das nun geschickt mit Python? Thread-Programmierung wäre auch noch ein Ansatz. Da ich aber sehr neu bin im Umgang mit Python ist es für mich etwas zu kompliziert derzeit.
Vielen Dank im Voraus.
Sven
			da ich auf meinem Raspberry Pi Python haben, möchte ich gerne mehr machen und Python etwas besser lernen.
Auf meinem RPi habe ich einen kleinen Wetterdaten-Logger, der mit Python, pyserial, Funksensoren und einem Funkmodul Temperatur und Luftfeuchtigkeit sammelt und in einer Webseite darstellt.
Wie ist der beste Weg in Python, um aus einem laufenden Python Script ein anderes Python Script mit Übergabe von Werten zu starten?
Ich habe einiges im Web gefunden.
- import des anderen Scripts (Modul)
- os.system verwenden (soll aber langsam sein)
Warum das ganze?
Wie oben beschrieben verwende ich ein Python Script, welches in einer Endlosschleife den seriellen Port (USB Funkstick - CUL868) überwacht.
Wenn Daten empfangen werden, werden diese aufbereitet und in eine SQLite DB geschrieben.
Nun habe ich das Gefühl, dass die Verarbeitung einzelner Daten etwas dauern kann und so neue ankommende Daten nicht berücksichtigt werden. Erst wenn die Verarbeitung fertig ist, kann wieder empfangen werden.
Jetzt war mein Gedanke, dass ich das so mache wie mit einer CMD Datei, die eine andere CMD Datei aufruft und nicht auf das Beenden dieser wartet. Somit läuft das Hauptprogramm und überwacht den Port. Wenn was ankommt, übergibt es einfach die Daten an das andere Script und überwacht weiter. Unter Windows wird jeder Aufruf der 2. CMD Datei in einem neuen Prozess gestartet. Somit behindern sich die Scripte nicht und alles ist bestens.
Wie macht man das nun geschickt mit Python? Thread-Programmierung wäre auch noch ein Ansatz. Da ich aber sehr neu bin im Umgang mit Python ist es für mich etwas zu kompliziert derzeit.
Vielen Dank im Voraus.
Sven