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

2 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)

DomiA 
Fragesteller
 27.02.2017, 18:34

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

0
DomiA 
Fragesteller
 27.02.2017, 19:01
@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
MrLongknife  27.02.2017, 21:06
@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