2017-06-08 3 views
1

Sagen Sie, aus irgendeinem Grund habe ich eine 1 TB-Datei. Wenn ich in Python 10 Bytes hinzufügen wollte, konnte ich einfach bis zum Ende suchen und eine 10-Byte-Zeichenfolge schreiben. Allerdings würde ich gerne 10 Bytes am Ende davon abschneiden. Offensichtlich würde es eine lächerliche Menge an Zeit benötigen (und möglicherweise gibt es nicht einmal Festplattenplatz), um diese Datei ohne die überschüssigen 10 Bytes zu kopieren, und dann die alte zu löschen.Python - Set-Datei EOF

In C++ für Windows gibt es eine Funktion, SetEndOfFile, die ich Dateigröße auf etwas kleiner ändern kann, ohne Datei neu zu schreiben.

Gibt es eine ähnliche Funktion in Python, die dies tun? Ich habe recherchiert und kann nichts finden ...

Antwort

1

Wow, ich glaube, ich nicht hart genug ausgesehen hatte: truncate

 
f = open(fname) 
f.seek(-10,2) # jump 10 bytes before end 
f.truncate() # truncate it!! 
f.close()