Variable aus TXT oder py Datei in das script übernehmen

  • Hallo zusammen ,


    Ich habe mir ein Script gemacht in dem ich eine Zeitschaltung habe , nun wollte ich mir eine art. config datei erstellen . nur komme ich nicht weiter !



    ich habe im zeit.py folgendes



    #licht wohnen

    l1 = "06:00"

    l2 = "18:30"


    in diesen script läuft es ohne probleme mit ein und aus schalten


    mein vorhaben ist aber das ganze nun aus einer config datei zu laden zb. licht_zeiten.py oder .txt

    und in dieser datei sollten nun die variablen stehen und von dem zeit.py gelessen und übernommen werden .


    dies muss nur bei start des scripts passieren , da ich nach änderungen eh mein script neu starte


    mir geht es nur darum !

    das ich eine datei mit licht zeiten habe und eine mit anderen schaltzeiten . um nicht im eig. script alles ändern zu müssen


    hoffe ich habe das halbwegs gut erklärt was ich den vor habe

    und hoffe auf hilfe


    lg

  • hey danke für deine schnelle antwort .


    könnntest du mir da mal n beispiel schreiben mit den zb zeit geladen wird ..

    ich versstehe die anleitung nicht so ganz :(


    werd mich aber mal auch versuchen da durch zu arbeiten

  • toml sieht auch brauchbar aus und ist deutlich umfangreicher als pickle.

    Python
    1. import pickle
    2. #Zeiten speichern
    3. licht_wohnen = {l1:"06:00", l2:"18:30"}
    4. pickle.dump(licht_wohnen,open("C:\\Test\\test.p","wb")
    5. #Zeiten laden
    6. lade_lichter = pickle.load(open("C:\\Test\\test.p","rb"))
    7. print(lade_lichter)
    8. {'l1': '06:00', 'l2': '18:30'}
    9. lade_lichter["l1"]
    10. '06:00'

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

  • Hallo,


    pickle ist ja eigentlich zum seralisieren von ganzen Python-Objekten.


    Universeller, unabhängiger und auch mit Bordmitteln machbar wäre, dass als JSON zu speichern. Oder als INI-Datei und die dann mit dem configparser-Modul lesen. Oder als Schlüssel-Werte Paare speichern mit Hilfe des shelve-Moduls.


    Gruß, noisefloor

  • Ich werfe noch YAML in den Raum, ein IMHO sehr gutes Format für einfache und umfangreiche Configs. JSON ist ebenfalls verbreitet und ein Subset von YAML.


    Hofei du und dein toml echt :baeh2:;)

  • toml sieht auch brauchbar aus und ist deutlich umfangreicher als pickle.

    hab das mal in dein geschriebenes geschrieben um besser zu verstehen

    lg

  • hi ja war mit absicht um etwas in erfahrung zu bringen .


    ich muss ja etwas in die haupt python datei schreiben und etwas in die datei zb zeit.txt


    import pickle

    #Zeiten speichern

    Code
    1. licht_wohnen = {l1:"06:00", l2:"18:30"}
    2. pickle.dump(licht_wohnen,open("C:\\Test\\test.p","wb")

    das oben in das txt/py file ?


    #Zeiten laden

    Code
    1. lade_lichter = pickle.load(open("C:\\Test\\test.p","rb"))

    und das hier dann an stelle der jetzigen variable ?


    sehe ich das so richtig ?

  • Hier mal noch ein kleines Codebeispiel für toml:

    Ebenso wäre es dir auch möglich die Textdatei via Editor zu ändern und nicht nur über das Python Skript

  • guten morgen ,


    ich verstehe diese script schnipsel nicht ..


    ich möchte ja nur aus der "config" datei lesen vom python script aus .. das python script soll nichts in die datei schreiben .


    mir ging es darum meine zeit angaben in zb. zeit.txt rein zu schreiben und python soll beim start des scripts einfach die txt abfragen mit den zeit einstellungen . und mit diesen durch starten


    ich verstehe in den schnipsel nicht das mit dem schreiben !


    lg

  • Ja genau das demonstriert doch das Schnipsel:


    mir ging es darum meine zeit angaben in zb. zeit.txt rein zu schreiben

    Du kannst ja die Datei nennen wie du willst.

    Und eben diese Datei wird doch auch eingelesen und die Einstellungen stehen anschließend in dem Dictionary zur Verfügung. Habe nur zusätzlich dein l1 und l2 erweitert mit paar anderen Sachen um zu demonstrieren dass die DATENTYPEN ( Linus  (;) erhalten bleiben.


    Oder scheitert das Verständnis schon an Dictionarys?

    Python
    1. In[4]: dictionary = {"a": "Hallo", "b": "Welt"}
    2. In[5]: dictionary["a"]
    3. Out[5]: 'Hallo'
    4. In[6]: dictionary["b"]
    5. Out[6]: 'Welt'