Comment écrire des octets dans un fichier texte en Python

Si vous voulez écrire des octets bruts dans un fichier ouvert en mode texte, il suffit d’écrire les données octales dans les fichiers sous-jacents du tampon. Par exemple:

>>> import sys
>>> sys.stdout.write(b'Hello\n')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: must be str, not bytes
>>> sys.stdout.buffer.write(b'Hello\n')
Hello
5
>>>

De même, les données binaires peuvent être lues à partir d’un fichier texte en lisant plutôt à partir de son attribut tampon.

Le système d’E/S est construit à partir de couches. Les fichiers texte sont construits en ajoutant une couche d’encodage/décodage Unicode sur un fichier en mode binaire tamponné.

L’attribut buffer pointe simplement vers ce fichier sous-jacent. Si vous y accédez, vous contournerez la couche d’encodage/décodage du texte.

L’exemple comportant sys.stdout peut être considéré comme un cas particulier. Par défaut, sys.stdout est toujours ouvert en mode texte.

Cependant, si vous écrivez un script qui a réellement besoin de décharger des données binaires vers une sortie standard, vous pouvez utiliser la technique montrée pour contourner l’encodage du texte).

LAISSER UN COMMENTAIRE

Please enter your comment!
Please enter your name here