Python: Text in Datei fortlaufend?
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()) #gibt datei in Console aus
fobj_out.write(str(i) + ":" + summery + "\n")
i = i + 1
fobj_in.close()
fobj_out.close()
2 Antworten
Sorry ich versteh das nicht.
Willst du jetzt am Ende der Datei einen neuen Timestamp speichern? Oder wie?
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()) #gibt datei in Console aus
i = i + 1
fobj_out.write(str(i) + ":" + summery + "\n")
fobj_in.close()
fobj_out.close()
oder übersichtlicher:
import sys
from datetime import datetime
now = datetime.now()
summery = now.strftime("%Y:%m:%d:%H:%M:%S")
i = 1
with open("Zeiten.txt") as fobj_in:
for line in fobj_in:
print(line.rstrip()) #gibt datei in Console aus
i = i + 1
with open("Zeiten.txt","a") as fobj_out:
fobj_out.write(str(i) + ":" + summery + "\n")
Dann steht i+1 immer für die Anzahl der Zeilen, bevor der neue Eintrag angehängt wurde.
Besser?
Funtioniert genauso wie es soll vielen lieben Dank
Wenn DAS das Ziel ist, dann reicht es auch die Datei einmalig zu öffnen.'r+' sollte es dann tun.
Naja, Du hängst die gesamte Eingabedatei an die Ausgabedatei an, weil Du diese mit 'a' also append öffnest.
Wenn Du etwas anderes tun möchtest, dann solltest Du genau spezifizieren können, was ausgeführt werden soll. Dann kannst Du das auch relativ leicht abbilden.
Danke für deine Antwort, hast du ein Link das ich es mir erarbeiten kann für mich? Finde derzeit nix bei Googele.
Die Dokumentation von Python beinhaltet eigentlich alles.
Wenn DU wirklich nur an die Datei anhängen möchtest, dann öffnest DU sie mit 'a' und schreibst direkt rein, Du liest vorher nicht die Datei ein und schreibst sie komplett nochmal.
Beispiel:
of=open("stamps.txt",'a')
of.write(timestamp)
of.close()
genau