Raspberry PI / Python Terminal auslesen?
Hallo Community,
Ich besitze einen Raspberry PI, mit dem ich in der Python Umgebung Befehle ausführen kann. Ich kann auch mit os.system() Terminal Befehle ausführen (z.B. Scripte). Allerdings würde ich gerne den Return von dem was im Terminal kommt, was der PI aufruft in eine Variable in Python speichern.
Konkretes Beispiel: Temperatursensor Script, dass man im Terminal einfach aufrufen kann und es einem die Temperatur ausgibt. Ich würde gerne Python das Script öffnen lassen und den Return von dem Scipt Python in eine Variable speichern speichern lassen, um nachher mit dieser Variable arbeiten zu können.
Gibt es da eine Möglichkeit?
Gruß Frager2Point01 Antwort
Ich kenne mich nicht mit Python aus, aber das habe ich gefunden: http://stackoverflow.com/a/95246/7081839
Eine Alternative (eher Workaround) wäre, die Inhalte in eine Datei zu pipen und anschließen zu lesen. Damit kannst du dann aber keine Textstreams benutzen. Beispiel:
./skript.sh > out.txt
LG SchönerElch
Wie gesagt, Python kenne ich auch nicht. So müsste es aber funktionieren:
import subprocess
p = subprocess.Popen('./skript.sh', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
for line in p.stdout.readlines():
print line,
retval = p.wait()
Ja, daran hatte ich auch schon gedacht. Das Problem ist jedoch die Belastung von dem Datenträger, da ich es in eine Endlosschleife packen möchte.
Zu dem Link: Ich bin ehrlich gesagt jetzt kein so Python /Linux kenner, dass ich damit etwas Anfangen kann. Kannst du es vielleicht etwas näher erklären? Ich möchte halt das mein .sh-Script ausgeführt wird und die Rückgabe zurückkommt.