En général, vous ne pouvez pas ; vous devez réécrire l'ensemble du fichier (au moins du point de modification jusqu'à la fin).
Dans certains cas spécifiques, vous pouvez faire mieux que cela -
si tous vos éléments de données ont la même longueur et ne sont pas dans un ordre spécifique, et que vous connaissez le décalage de celui dont vous voulez vous débarrasser, vous pouvez copier le dernier élément sur celui à supprimer et tronquer le fichier avant le dernier élément ;
ou vous pouvez simplement écraser le morceau de données avec une valeur "c'est une mauvaise donnée, ignorez-la" ou garder un drapeau "cet élément a été supprimé" dans vos éléments de données sauvegardés de sorte que vous puissiez le marquer comme supprimé sans modifier le fichier.
C'est probablement trop pour les documents courts (moins de 100 Ko ?).
1 votes
Essayez
fileinput
comme décrit par @j-f-sebastian aquí . Il semble vous permettre de travailler ligne par ligne, via un fichier temporaire, le tout avec une simplefor
la syntaxe.