Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Ich brauche das wenn das Programm ausgeführt wird ein Timestamp gesetzt wird in einer Text Datei dabei darf der vorherige Inhalt sich jedoch nicht wiederholen, derzeit ist es so das, wenn ich es aufrühre der gesamte Text + gesamte Text mit aktuellen Inhalt geschrieben wird also doppelt. Wie kann, ich es abändern das immer nur der eine Eintrag zu den bereits vorhandenen dazukommt?
import sys
from datetime import datetime
now = datetime.now()
summery = now.strftime("%Y:%m:%d:%H:%M:%S")
i = 1
fobj_in = open("Zeiten.txt")
fobj_out = open("Zeiten.txt","a")
for line in fobj_in:
print(line.rstrip()) #gebe datei aus in Console
fobj_out.write(str(i) + ":" + summery + "\n")
i = i + 1
fobj_in.close()
fobj_out.close()
Ich verstehe nicht, was du erreichen möchtest.
Im Augenblick öffnest du eine Datei zum lesen und gleichzeitig zum Schreiben (append / anhängen). Dann liest du Zeile für Zeile und schreibst die Zeilen hinten an die Datei. Dann ist natürlich alles 2 Mal da.
Führ mal etwas weiter aus, was genau dein Problem ist. Ist das eine Logdatei? Möchtest du die nur um die Timestamps "erweitern"?
Das ist ein komisches Datumsformat, dass Du alle Zahlen per : trennst. Warum willst Du das so haben?
Dateien sollte man nicht gleichzeitig lesen und verändern.
Strings stückelt man nicht mit + zusammen, sondern benutzt Stringformatierung, da kann man die Datumsformatierung auch gleich einbauen.
Wenn man zusätzlich zu einer List-Iteration in einer for-Schleife auch einen Zähler braucht, nimmt man enumerate, statt händisch i zu zählen.
Im Moment schreibst Du für jede Zeile in Deiner Input-Datei eine neu Zeile hinten dran.
Dein Ziel verstehe ich aber auch nicht: Warum willst Du das Datum vier mal in der Datei haben? Woher kommt die 4?