[Python-de] Daten in Datei einfuegen

Alexander 'boesi' Bösecke boesi.josi at gmx.net
Mit Apr 21 14:04:42 CEST 2004


moin

Ist es moeglich in Dateien Daten an beliebiger Stelle einzufuegen, ohne
das die vorhandenen Daten ueberschrieben werden? Und das mit einer
Methode, die auch noch plattformuebergreifend funktioniert?

Im Modus 'r+' werden die vorhandenen Daten ueberschrieben:
fd = open('test.txt', 'r+')
fd.read()
'test1'
fd.seek(0)
fd.write('test2')
fd.seek(0)
fd.read()
'test2'

Die Größe der zu schreibenden Daten ist bekannt, also koennte ich ja die
Datei vorm schreiben mit 0-Bytes auffuellen. Aber wie mach ich das?

Und im Modus 'a+' werden die Daten immer ans Ende der Datei angehaengt:
fd = open('test.txt', 'a+')
fd.read()
'test2'
fd.seek(0)
fd.write('test3')
fd.seek(0)
fd.read()
'test2test3'

Das wuerde funktionieren, wenn ich die Datei vorm schreiben an der
passenden Stelle teile und danach wieder zusammenfuege. Geht das ohne
die Datei einzulesen (die Dateien koennen mehrere 100MB bis > 1GB gross
sein)? 

thx & cu boesi

PS: die Größe der einzufuegenden Daten ist immer 1MB, falls das wichtig
sein koennte.
-- 
Wenn de Lüch net waer un dr Neid                     #1671 : icq-intern
gäbs lauter glückliche Leid                      #73628288 : icq-extern
Uhne Lüch un Neid = ganz gewiß                    boesi111 : aim
wär uf dr Ard is Paradies                             i171 : reallife