Maison > Article > développement back-end > Comment lire (ou écrire) des données binaires en Python ?
Pour lire ou écrire des fichiers binaires, vous devez d'abord comprendre les différents modes de fichier des fichiers binaires en Python -
Mode | Description |
---|---|
rb | Ouvrez un fichier au format binaire en lecture seule. Le pointeur de fichier se trouve au début du fichier. C'est le mode par défaut. |
rb+ | Ouvrez un fichier au format binaire pour la lecture et l'écriture. Le pointeur de fichier est placé au début du fichier. |
wb | Ouvrez les fichiers écrits au format binaire uniquement. Écrase le fichier s'il existe. Si le fichier n'existe pas, un nouveau fichier est créé en écriture. |
wb+ | Ouvrez un fichier au format binaire pour l'écriture et la lecture. Si le fichier existe, le fichier existant est écrasé. Si le fichier n'existe pas, un nouveau fichier est créé pour la lecture et l'écriture. |
ab | Ouvrez un fichier à ajouter au format binaire. Si le fichier existe, le pointeur de fichier se trouve à la fin du fichier. Autrement dit, le fichier est en mode ajout. Si le fichier n'existe pas, un nouveau fichier est créé en écriture. |
ab+ | Ouvrez les fichiers pour les ajouter et les lire au format binaire. Si le fichier existe, le pointeur de fichier se trouve à la fin du fichier. Le fichier est ouvert en mode ajout. Si le fichier n'existe pas, un nouveau fichier est créé pour la lecture et l'écriture. |
Supposons que nous ayons un fichier binaire. Nous pouvons le lire en utilisant la méthode read(). Tout d’abord, nous allons ouvrir le fichier binaire en utilisant le mode rb de la méthode open(). Nous avons les fichiers sources suivants dans le lecteur D: -
Voyons le code complet
# Open a binary file f = open('D:\PythonLogo.png', 'rb') # Read lines data = f.read() # Display the data print(data)
Le fichier binaire n'est pas lisible et le contenu n'est pas reconnu. La production réelle est supérieure. Ci-dessous, nous n’en montrons qu’une partie.
b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x04\xb0\x00\x00\x04\xb0\x08\x06\x00\x00\x00 \xeb!\xb3\xcf\x00\x00\x00\x04gAMA\x00\x00\xb1\x8f\x0b\xfca\x05\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\x0 0\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x00\x06bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x 93\x00\x00\x00\x07tIME\x07\xe1\x08\n\x07\x16\x07\xc9\xb2\xff\xd3\x00\x00\x80\x00IDATx\xda\ xec\x9dw\xbc]e\x95\xf7\x7f\xcf>\xe7\xa6\x91@\xe8\xc5\x02\xa2\x88\x14q0B\x12\xc0\x99\x00!\x 88(\x02\x9a\x8c\x85"\xea\x80b\xc5\x02\xa1\xf8z\xa78\x8aJ\x13EeF\x1d\xdb\x94\x80@\x08\xea\x a0\x8c\xe0\x0c\x98\x10`\x94\x92\xd0D@,#\x88\xd4\x90r\xef\xd9\xeb\xfd#\x01\x02i\xe7\x9e\xb3 \xcb\xf3\xac\xfd\xfd~>\xef; . . . \xcdn\xd2d\xb1Q\xdf\xfa\xe9\x8d|\x8f\x14\x00\x00\x00\xb4\t\x02\x0b\x00\x00\x00\xe0Q\x98\xa 9\xd0\xd5\xc7\x1c$Izp\xee>\x9a\xd8\xfa\x98\x1d\xffdr\x7f\x153\x8f\xfa\xf8\xa3\xcdQJ\x07\xec\x e5\xc8\xf5X\x95\x96\x1eu\n\xdb\xac\xa4- {\xf9{\xdbe\xf6\xc0#\xfe\xa7\t\xdd\xaf\xed\x9a\xd9\xd1\xf5\xe4\x83\xdawf\xc7w>m\xdb\xbc5- X\xff \xb3\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd02\xff?\xca\x9f\x86X\x17m\x83=\ x00\x00\x00%tEXtdate:create\x002017-08- 10T07:22:07+00:00u\xea\xe6c\x00\x00\x00%tEXtdate:modify\x002017-08- 10T07:22:07+00:00\x04\xb7^\xdf\x00\x00\x00\x00IEND\xaeB`\x82'
wb de la méthode open() permet d'ouvrir le fichier au format écriture.
Attention - Le fichier binaire n'est pas lisible et le contenu n'est pas reconnu
Jetons un coup d’œil à l’exemple complet. Ici, le fichier sera stocké dans E drive avec le nom
MyDemoBinary.bin -
# Open a file in binary format for writing f = open("E:\MyDemoBinary.bin","wb") # Elements to be added to the binary file a = [100, 200, 300] # Convert the integer elements to a bytearray myArr = bytearray(a) # The byte representation ius now written to the file f.write(myArr) f.close()
Après avoir exécuté le fichier, le fichier sera visible dans le chemin défini, c'est-à-dire le lecteur E -
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!