In Python mitten in einem TXT-Dokument mehrere Zeilen einfügen?

3 Antworten

Du kannst in Dateien nichts einfügen, was den nachfolgenden Inhalt nach hinten schiebt. Das hat nichts mit Python oder Windows zu tun, sondern liegt daran, dass Dateisysteme auf Block-Geräte zugeschnitten sind.

Du kannst aber im ersten Durchgang genug Platz lassen und diesen abschließend überschreiben:

with open("data.txt", "r+") as file:
file.truncate()
file.writelines( "Zeile %i\n"%(i+1,) for i in range(10) )
zeitpos = file.tell()
file.write( bytearay("????????\n", "utf-8") )

# Daten schreiben...

file.seek( zeitpos, 0 )
file.write( "%.8s"%(dauer,), "utf-8" )

Die Kunst besteht nur darin, beim Schreiben von dauer nicht versehentlich mehr zu schreiben als Platz gelassen wurde :-)

Moin

schau mal hier -> 

https://www.tutorialspoint.com/python/list_insert.htm

#!/usr/bin/python

aList = [123, 'xyz', 'zara', 'abc']

aList.insert( 3, 2009)

print "Final List : ", aList

so long(knife)

Ich möchte es in eine Datei einfügen, nicht in eine Liste. Oder verstehe ich dich falsch?

0
@DomiA

... du kannst ja die Liste dann in die Datei schreiben

1
@Tschoo

Da hat er recht, Nutze  die Liste oder ein Array und schreib es dann in die Datei.

0
@MrLongknife

Die Idee ist zwar gut, jedoch existiert die Liste mit den Werten schon und ist alleine über 2,1 Mrd. Werte groß. Da es bei dem Script um Schnelligkeit geht, hoffte ich es gäbe einen schnelleren Weg als über eine 2. Liste. Dennoch vielen Dank ;)

0
@DomiA

2.1 Mrd werte ? 

WTF, welcher Vollpfosten, hat Dich dann  zu Phyton gezwungen ? 

IMHO - Irsinig, es Sei den Du hast ein Fettes ServerBlade!

so long(knife)

0

Was möchtest Du wissen?