J'essaye de prendre un fichier avec le suffixe .bin, l'encoder et ensuite de l'envoyer à quelqu'un (l'envoyer comme .bin n'est pas supporté). .le problème est que quand j'utilise la commande:Comment copier un fichier .bin dans un fichier texte en Python
with open('myfile.bin','r') as fileToCopy:
Je suis un message d'erreur
'charmap' codec can't decode byte 0x90 in position 192:chatacter maps to <undefined>
alors je pensais à une solution de contournement qui convertit le fichier txt, puis de l'envoyer. J'ai essayé de copier un fichier binaire dans un fichier texte, le code que j'ai utilisé est
with open('myfile.bin','rb') as fileToCopy:
with open('newfile.txt,'w') as myNewFile:
for line in fileToCopty:
myNewFile.write(line)
et le fichier .bin contient des lignes comme celle-ci:
244e 504b 0100 3900 9000 0003 0100 0000
8000 0003 0200 0000 a432 0002 0000 0000
0002 0a02 0103 0000 0001 0a02 0003 0000
0001 0a02 0103 0000 0002 0a02 0003 0000
Mais les résultats sont un fichier contenant ordures. J'ai essayé aussi de décoder les octets que le format utf-8, mais je reçu ce message d'erreur:
'utf-8' codec can't decode byte 0xfa in position 1:invalid start bye
Le code que j'utilisé pour décoder « format utf-8 est:
with open('myfile.bin','rb') as fileToCopy:
with open('newfile.txt,'w') as myNewFile:
for line in fileToCopty:
myNewFile.write(line.decode('utf-8'))
Am Je fais quelque chose de mal? Y a-t-il une autre façon de faire cela?
".. les résultats sont un fichier contenant des ordures .." - qu'espériez-vous voir dans votre fichier texte? ".. J'ai aussi essayé de décoder les octets en format utf-8 .." - c'était une idée terriblement mauvaise. Vous pouvez uniquement décoder le texte au format UTF8 à l'aide de la méthode 'decode' UTF8. – usr2564301
Comme le suggère Rad, ce que vous essayez de faire n'a aucun sens. Essayez d'expliquer pourquoi voudriez-vous convertir le fichier binaire en un texte plutôt que de demander comment le faire. –