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

  • Variable aus TXT oder py Datei in das script übernehmen? Schau mal ob du hier fündig wirst!

    • Offizieller Beitrag

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

    Python
    import pickle
    #Zeiten speichern
    licht_wohnen = {l1:"06:00", l2:"18:30"}
    pickle.dump(licht_wohnen,open("C:\\Test\\test.p","wb")
    #Zeiten laden
    lade_lichter = pickle.load(open("C:\\Test\\test.p","rb"))
    print(lade_lichter)
    {'l1': '06:00', 'l2': '18:30'}
    lade_lichter["l1"]
    '06:00'
  • 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

  • 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
    licht_wohnen = {l1:"06:00", l2:"18:30"}
    pickle.dump(licht_wohnen,open("C:\\Test\\test.p","wb")

    das oben in das txt/py file ?

    #Zeiten laden

    Code
    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
    In[4]: dictionary = {"a": "Hallo", "b": "Welt"}
    In[5]: dictionary["a"]
    Out[5]: 'Hallo'
    In[6]: dictionary["b"]
    Out[6]: 'Welt'

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!