Python Einstellung speichern?
Ich möchte für mein Python Script einen Settings Bereich erstellen.
Ich habe sowas noch nie gemacht, also weiß ich auch nicht wie man sowas nennt.
Ich möchte, das wenn man in den Einstellungen z.B. einstellt, das die Schrift 100 ist, dann soll das in ein File gespeichert werden und das nächste mal beim Starten geladen werden.
Wie mache ich sowas? Gibt es dazu Tutorials? Wie nennt man sowas?
1 Antwort
Sowas ist eine Konfigurationsdatei. Du kannst sie in beliebigen Formaten speichern, JSON oder https://docs.python.org/3/library/configparser.html bieten sich an, weil gleichermaßen maschinen- und menschenlesbar.
Die Frage ist dann, wo sie zu speichern sind. Auf Unix-basierten Betriebssystemen wählt man üblicherweise ein verstecktes File oder Directory im Homedirectory des aktuellen Benutzers.
from pathlib import Path
config_file = Path.home() / ".meinekonfig"
Das funktioniert auch auf Windows, wenn es auch nicht der "Standardweg" ist.
Das ist kein JSON, das ist das INI-Format, das auch der Configparser verwendet. Mit JSON geht das Schreiben und Lesen zB so, wie auch in der Doku nachzulesen:
import json
from pathlib import Path
config_file = Path.home() / "testconfig.json"
my_config = {"fontsize" : 100, "fontface" : "Helvetica"}
with config_file.open("w") as f:
json.dump(my_config, f)
with config_file.open() as f:
my_read_config = json.load(f)
assert my_read_config == my_config
Aber vorallem in Linux basierenden Systemen wird es nicht mit JSON gemacht.
Das ist wie eine .txt Datei:
font-size: 40
font-family: Helvatica
Dann nimmst du halt einen YAML-Parser oder schreibst dir selber was.
Wenn ich dich mal kurz etwas fragen darf, was nichts mit der Frage zu tun hat:
Wie kann ich die Farbe von meinem Input in Python ändern? Ich finde Online einfach keine Lösung?
Sagen wir mal meine JSON Datei sieht so aus:
und jetzt möchte ich in Python printthisthing mit einem print() anzeigen. Wie mache ich das?