Textdatei einlesen und in if verwenden

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.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Ja, das geht in die richtige Richtung.

Aufruf:

Code: Alles auswählen

program.py command status
Und dann die relevanten Zeilen (ohne Fehlerbehandlung und als `sys.argv` Variante) im Programm:

Code: Alles auswählen

import sys
_, command, state = sys.argv

if command == "licht":
    if state == "an":
        turn_light_on()
    else state == "aus":
        turn_light_off()
elif command == "kino":
    ....
obstkuchen
User
Beiträge: 13
Registriert: Dienstag 10. Februar 2015, 23:42

Hatte jetzt an

Code: Alles auswählen

#!/usr/bin/env python
import sys

if sys.argv[1] == "an":
        print "an"

if sys.argv[1] == "aus":
        print "aus"
gedacht



Jetzt wollte ich das ganze mal testen, doch woher weiß denn dann das PHP Skript ob das Licht an oder aus ist, wenn ich es nicht in eine Textdatei schreibe?

Weil ich die PHP Seite ja nicht nur auf meinem Handy, sondern auch auf meinem IPad, dem Pi selber und meinem PC läuft.

Vorher konnte ich ja mit

Code: Alles auswählen

$a = trim(@shell_exec("/usr/local/bin/gpio -g read 27"));
Abfragen ob an order aus.
Durch den Wegfall der Relais musste ich ja auf eine Textdatei zugreifen.
Weil ich nur einen Button für an und aus habe.
Der Kino Button erscheint erst wenn das Licht auch an ist.
Hat da noch einer eine Idee ?
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Du müsstest Dir dann tatsächlich den Zustand persistent merken. Dies kannst Du ja nach wie vor in einer Textdatei machen, die Du von PHP Seite ausliest. Diese kann nun entweder PHP schreiben - oder eben auch das Python-Script.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
obstkuchen
User
Beiträge: 13
Registriert: Dienstag 10. Februar 2015, 23:42

Ja,
dann bedanke ich mich recht Herzlich für die aufschlussreiche Hilfe.
Das Script läuft so weit, dass Thema könnte als Erledigt markiert werden, ich kann nur den ersten Beitrag nicht mehr editieren.

Mfg
Heiko
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Wir schließen hier keine Themen :-) Es ist immer möglich, daß jemand anderes das Thema erneut aufgreift. Insofern musst Du nichts "tun" :-)

Eine letzte Anmerkung noch: Du könntest jetzt daran gehen und PHP durch Python ersetzen ;-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Antworten