Hallo,
Ich erstelle mir eine Steuerung zur Gartenbewässerung.
Dazu habe ich mehrere Parameter-Dateien (csv Dateien) erstellt in denen ich div. Parameter abgelegt habe (z. B. zu welcher Uhrzeit die Bewässerung beginnen soll, wann sie endet usw).
Die Parameter-Dateien habe ich zuvor mit einem Text-Editor erstellt. Das Einlesen der Dateien und der Zugriff auf jedes der einzelnen Elemente in der Datei klappt super und das Programm läuft auch genauso wie ich es mir vorgestellt habe.
Jetzt bin ich aber auf die Idee gekommen, das ich die Parameter in den Dateien zur Laufzeit verändern möchte und die geänderten Parameter anstelle der ursprünglichen in die csv-Datei speichern möchte.
Und genau da, beim Speichern der Parameter (eines einzelnen Parameters in einer bestehenden csv-Datei) komme ich nicht weiter.
Bisher habe ich nur gefunden, das ich den kompletten Inhalt der Parameter-Datei neu erstellen muss.
Ich hoffe ihr könnt mir weiterhelfen und mir einen Tipp geben wie ich ein bekanntes Element innerhalb einer csv-Datei verändern kann.
Ich weis nicht ob es Sinn macht meinen Code hier zu veröffentlichen, denn in Bezug auf das Speichern der Daten in der csv-Datei habe ich noch nichts hinbekommen.
Entweder war die komplette Parameter-Datei anschließend leer oder ich habe einen weiteren Datensatz angehängt, was beides nicht mein Ziel ist.
Weiterhin ein frohes Weihnachtsfest
Gruß
Frank
einzelnes Element in bestehende csv Datei speichern
@Bubi-Bandit: Es läuft letztendlich auf das was Du gefunden hast hinaus: Komplett neu schreiben der Datei. Das ist letztendlich bei allen Formaten die als Textdateien gespeichert sind der Fall. Wenn Du wahlfrei Werte ändern können möchtest, könntest Du eine Datenbank verwenden. SQLite zum Beispiel. Dafür ist ein Modul in der Standardbibliothek enthalten.
@Bubi-Bandit
csv-Dateien sind Textdateien. Und in Textdateien kannst Du nicht etwas hinzufügen oder ändern oder herausnehmen. Du musst die Textdatei lesen, das Gelesene ändern und diese Änderung dann wieder schreiben.
mutetella
csv-Dateien sind Textdateien. Und in Textdateien kannst Du nicht etwas hinzufügen oder ändern oder herausnehmen. Du musst die Textdatei lesen, das Gelesene ändern und diese Änderung dann wieder schreiben.
mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit )
-
- User
- Beiträge: 2
- Registriert: Donnerstag 25. Dezember 2014, 21:56
Ok,
Danke für die schnellen Antworten.
Dann bin ich beruhigt, das meine eigene Recherce zum "richtigen" Ergebnis führte, das man die komplette Datei neu beschreiben muss.
Im Grunde auch nicht weiter ein Problem, ich dachte nur das es eleganter gehen würde.
Gruß und vielen noch mal
Frank
Danke für die schnellen Antworten.
Dann bin ich beruhigt, das meine eigene Recherce zum "richtigen" Ergebnis führte, das man die komplette Datei neu beschreiben muss.
Im Grunde auch nicht weiter ein Problem, ich dachte nur das es eleganter gehen würde.
Gruß und vielen noch mal
Frank
@Bubi-Bandit: Als Hinweis vielleicht noch das es robuster ist die neue Datei erst in eine temporäre Datei mit einem einzigartigen Namen zu schreiben und dann am Ende diese Datei zur alten Datei umzubenennen. Am besten im gleichen Verzeichnis. Damit verhindert man das zwei Prozesse die Datei gleichzeitig beschreiben und sie dadurch ”kaputt” gehen kann. Benannte temporäre Dateien kann mit Hilfe des `tempfile`-Moduls aus der Standardbibliothek erstellen.
Hallo,
es gibt einen Modul csv von python, das kann Dir einiges abnehmen. Schau mal rein: https://docs.python.org/2/library/csv.html
Ich persönlich bin eher ein Fan von Json. Hat eine dict-ähnliche Syntax und auch hier gibt es einen Python-Parser frei Haus: https://docs.python.org/2/library/json.html. Vielleicht gefällt es Dir ja. Ich finde es weitaus übersichtlicher, v. a. dann, wenn man "händisch" Änderungen machen möchte.
Beste Grüße
Humbalan
es gibt einen Modul csv von python, das kann Dir einiges abnehmen. Schau mal rein: https://docs.python.org/2/library/csv.html
Ich persönlich bin eher ein Fan von Json. Hat eine dict-ähnliche Syntax und auch hier gibt es einen Python-Parser frei Haus: https://docs.python.org/2/library/json.html. Vielleicht gefällt es Dir ja. Ich finde es weitaus übersichtlicher, v. a. dann, wenn man "händisch" Änderungen machen möchte.
Beste Grüße
Humbalan