stehe wieder vor einem Problem. Dabei geht es darum, dass ich eine app aufrufe, der ich meine gewünschte Funktion leider nicht als Argument übergeben kann, sondern sobald das Programm gestartet ist, es Operatoren gibt, um Aufgaben zu triggern. Das bedeutet im Klartext, wenn ich das Programm z.B. über die Konsole starte, erscheint nach mini lagg ein Menü, in dem ich mit Buchstabeneingaben, z.B. "R", Aufgaben triggern kann. Wie kann ich das jetzt über mein Skript erledigen? Ich habe einen Ansatz vorbereitet, funktioniert aber nicht.
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import subprocess
from time import sleep
def trigger_task():
app = subprocess.Popen(["/home/pi/app", "-c", "USB"], stdin=PIPE) #so starte ich die app
sleep(1)
app.communicate(input="R") #mein Versuch den operator "R" auszuführen
sleep(1)
app.terminate()
def main():
trigger_task()
if __name__ == '__main__':
main()
Popen.communicate(input=None)
Interact with process: Send data to stdin.
Note that if you want to send data to the process’s stdin, you need to create the Popen object with stdin=PIPE.
Mein Fehler dabei ist, dass ich das Thema "PIPE" einfach nicht verstehe und das trotz durchlesen der Doku. Kann mir da bitte jemand auf die Sprünge helfen? Vor allem, ist der Ansatz hier sonst richtig oder liege ich komplett falsch?
Vielen Dank für Feedback!
Gruß
mobby