hab mich durch diverse Google-Seiten versucht schlau zu machen, doch bisher nichts gescheites gefunden.
Wie schafft man es, Text unterschiedlicher länge in einer Datei zu _ersetzen_ ?
Alle meine Versuche, einen Text (z.B. ein Wort) zu ersetzen klappen soweit ganz gut, wenn sich die Länge des Textes/Wortes nicht ändert.
Beispiel:
Gegeben in der Datei ist:
Heutiges_Datum=
Heutige_Uhrzeit=
Nach geschriebenem Datum in die Datei, sieht diese wie folgt "deformiert" aus:
Heutiges_Datum=17.07.2011rzeit=
Sprich: Das Datum wird nicht eingefügt, sondern "reingeschrieben" und damit der Inhalt des weiteren "Textes" überschrieben.
Meine Frage ist nun, wie löse ich das Problem?
Mein Quellcode (Funktion) für das Ersetzen bzw. Setzen von Texten/Variablen sieht wie folgt aus:
Code: Alles auswählen
def write_runtime_var(option, value):
my_file = open(PRG_PATH+"my_script.ini", "r+")
while True:
line = my_file.readline()
if not line:
break
else:
RW = line.find(option + "=")
if RW != -1 and line[0] != "#":
# Zeile NACH und VOR dem "=" splitten:
line_tmp = line.split("=")
# Stringlänge nach dem "=" ermitteln:
line_tmp_r = int(len(line_tmp[1]))
# Position in der Datei ermitteln:
position = my_file.tell()
# DateiZeiger-Position nach dem "=" setzen:
position = (position-line_tmp_r)
my_file.seek(position,0)
# String schreiben:
my_file.write(str(value))
my_file.close()
return
LG worker