Es geht um ein Raspberry Projekt ich habe ein AD Wandler welcher jede Sekunde ausgelesen wird, der Wert wird dann in eine Datei geschrieben, und ständig überschrieben (Die Datei wird dann von einem Programm ausgelesen und erstellt ein Diagramm) Nun möchte ich die Werte in eine Datei mit einem Zeitstempel schreiben. Also es soll in etwa wie folgt aussehen: lese jede Sekunde die Datei abc.txt aus und schreibe den Wert mit einem Zeitstempel in die Datei time.txt wie müsste hier das Python Skript aussehen ?
>der Wert wird dann in eine Datei geschrieben, >und ständig überschrieben (Die Datei wird dann von einem Programm >ausgelesen und erstellt ein Diagramm) Wenn die Datei auf einem Flash-Speicher gespeichert ist, könnte das sekündliche Beschreiben jenes Speichers die Lebenserwartung doch arg verkürzen. Kann sein, dass ein gutes OS das Puffert, sicher bin ich mir aber nicht. Der Umweg über die Datei scheint mir keine geeignete Methode zu sein. Mal über eine Datenbank nachgedacht, oder die Daten direkt zu verarbeiten? Gruß Jonas
import time while True: with open('abc.txt', 'rb') as input: value = input.read() with open('time.txt,'ab') as output: output.write("%s\t%s\n" % time.time(), value) time.sleep(1) Oder natuerlich schicker formatieren, statt einem Unix Zeitcode...
@ Florian F erstmal Danke für deine Hilfe jedoch stimmt etwas mit dem Skript nicht, wenn ich es ausführen will kommt folgende Meldung: File "Dateiname.py", line 9 in <module> output.write("%s\t%s\n" % time.time(), value) TypeError:not enough arguments for format string
nee, sorry der Gänsefuss ist nicht weit genug gelaufen... muss hinter die Klammer von ...time() gruß jonas
nee, jetzt eine Kombi aus beiden + da fehlt noch was
ich habe die Zeile jetzt so da stehen: output.write, ("%s\t%s\n % time.time()", value) jetzt kommt zwar keine Fehlermeldung, jedoch bleibt die Datei time.txt in dem die Werte und der Zeitstempel rein geschrieben werden soll leer.
Der Gast schrieb: > jedoch bleibt die Datei time.txt > in dem die Werte und der Zeitstempel rein geschrieben werden soll leer Ach, das wundert dich? Die Datei wird ja auch nicht geschlossen, und damit wird auch nichts geschrieben. Der Gast schrieb: > jedoch stimmt etwas mit dem > Skript nicht Der Gast schrieb: > Nun möchte ich die Werte in eine Datei mit einem Zeitstempel schreiben. Der Gast schrieb: > wie müsste hier das Python Skript aussehen ? "Ich hab hier ein Projekt, will aber nichts dafür tun. Macht ihr das mal für mich..."
ich habe nun folgendes Python Skript: import datetime while True: with open('abc.txt', 'rb') as input: value = input.read() with open('time.txt,'ab') as output: output.write, ("%Y-%m-%d %H:%M:%S" % datetime.datetime(), value) time.sleep(1) Es kommt jedoch folgende Fehlermeldung: TypeError: Required argument "year" (pos 1) not found Was ist nun falsch ?
Der Gast schrieb: > output.write, ("%Y-%m-%d %H:%M:%S" % datetime.datetime(), value) > Was ist nun falsch ? Da ist so ziemlich alles falsch dran. Es könnte z. B. so aussehen: output.write("%s %s" % (datetime.datetime.now(), value))
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.