Simple de modifier un fichier binaire en python
CE DEVRAIT ÊTRE FACILE! Mais j'ai été incapable de trouver la réponse à cette question.
À l'aide de python, je veux lire un fichier binaire dans la mémoire, de modifier les quatre premiers octets du fichier, puis d'écrire le fichier.
Il y a un moyen simple pour modifier les quatre malheureux d'octets! droit?
Voulez-vous lire l'intégralité du fichier en mémoire ou seulement les quatre premiers octets que vous souhaitez modifier plus tard?
Alors, qu'avez-vous essayé? Montrez votre meilleure tentative, et de dire ce qui n'allait pas.
Alors, qu'avez-vous essayé? Montrez votre meilleure tentative, et de dire ce qui n'allait pas.
OriginalL'auteur CodingWithoutComments | 2011-01-05
Vous devez vous connecter pour publier un commentaire.
Pourquoi lire le fichier entier de quatre octets au début? Ne devrait-ce pas le travail?
Même si vous avez besoin de lire ces octets du fichier à calculer les nouvelles valeurs, vous pouvez toujours le faire:
Bon point. Ajout d'un exemple de cela aussi.
OriginalL'auteur kindall
Mon problème était d'utiliser les "w+b" au lieu de "r+b" comme solution. Je vous remercie.
OriginalL'auteur Emilio Silva
OriginalL'auteur John Machin
Simplement, mais la mémoire de façon inefficace,
Le Python 3:
Le Python de 2 façon:
Si les fichiers sont énormes, vous pouvez la mémoire de la carte et les modifier/écrire les octets qui doivent changer. Il n'y a presque aucune différence, jusqu'à ce qu'ils obtiennent plus d'un meg, si.
Pourquoi ne pas utiliser
f.read(4)
à prendre les 4 premiers octets, puisf.read()
à la fin pour le reste.Thomas, j'ai pensé à ça après que j'ai posté, bonne prise. Je copie/collé à partir d'un de mes fichiers dans cela et juste changé le nom et la dernière ligne. :p
OriginalL'auteur SilverbackNet
Cela ressemble un peu comme HW donc je ne vais pas donner le code exact.
mais ici, c'est assez d'informations
Corrigé :), merci John
et maintenant, vous n'avez pas besoin de chercher 🙂
ouais mais comme je n'ai pas soumettre de code, son accord pour donner une idée générale? Qu'en pensez-vous?
OriginalL'auteur anijhaw
cela devrait aider.
http://www.johnny-lin.com/cdat_tips/tips_fileio/bin_array.html
OriginalL'auteur madmik3