2016-10-06 1 views
0

J'ai essayé de le faire en utilisant les modes 'r + b', 'w + b' et 'a + b' pour open(). J'utilise avec seek() et write() pour déplacer et écrire dans un emplacement arbitraire dans le fichier, mais tout ce que je peux faire c'est soit 1) écrire de nouvelles informations à la fin du fichier ou 2) écraser les données existantes dans le fichier fichier. Est-ce que quelqu'un sait d'une autre manière de faire ceci ou où je me trompe ici?Comment puis-je insérer des données à un emplacement arbitraire dans un fichier binaire sans écraser les données de fichier existantes?

Répondre

1

Ce que vous faites mal est de supposer que cela peut être fait. :-)

Vous ne pouvez pas insérer et enfiler les données existantes; il est déjà dans cette position sur le disque, et l'écrasement est tout ce que vous obtenez.

Ce que vous devez faire est de marquer la position d'insertion, lire le reste du fichier, écrire votre insertion, puis écrire ce reste après l'insertion.

+0

exemple de code exemple serait bien, non? – kmario23