5.1 Données binaires
Travailler avec des fichiers binaires en Python est un peu différent de travailler avec des fichiers texte, car les fichiers binaires contiennent des données dans un format qui n'est pas destiné à être lu par un humain. Au lieu de chaînes, les fichiers binaires manipulent des octets.
Pour travailler avec des fichiers binaires, on utilise la fonction
open()
en spécifiant un mode contenant la lettre
'b'
(par exemple, 'rb'
pour lire,
'wb'
pour écrire, etc.).
Exemples d'ouverture de fichiers binaires :
- Lecture :
'rb'
- Écriture :
'wb'
- Ajout :
'ab'
- Lecture et écriture :
'r+b'
,'w+b'
,'a+b'
Exemple :
file = open('example.bin', 'rb')
content = file.read()
print(content)
file.close()
La variable 'content'
contiendra un tableau d'octets.
Les données binaires (octets) sont le niveau le plus bas, le plus fondamental de représentation des données. Toutes les données peuvent être lues comme binaires.
Cela signifie qu'un fichier texte peut toujours être lu comme un binaire, mais chaque fichier binaire ne peut pas être interprété comme un texte.
5.2 Lecture des fichiers binaires
Lecture de tout le contenu du fichier
La méthode read()
lit tout le contenu du fichier en octets.
Exemple :
file = open('example.bin', 'rb')
content = file.read()
print(content)
file.close()
Lecture d'un certain nombre d'octets
La méthode read(n)
lit n
octets du fichier.
Exemple :
file = open('example.bin', 'rb')
content = file.read(10) # Lit les 10 premiers octets
print(content)
file.close()
Lecture ligne par ligne
La méthode readline()
lit une ligne du fichier. Dans le cas des fichiers binaires,
la ligne se termine par un caractère de nouvelle ligne (\n)
.
Exemple :
file = open('example.bin', 'rb')
line = file.readline()
print(line)
file.close()
Lecture de toutes les lignes
La méthode readlines()
lit toutes les lignes du fichier et les renvoie sous
forme de liste d'octets.
Exemple :
file = open('example.bin', 'rb')
lines = file.readlines()
for line in lines:
print(line)
file.close()
Les méthodes de manipulation des chaînes peuvent ne pas fonctionner correctement si vous lisez un fichier qui ne contient pas de texte : par exemple, une archive, une image ou une vidéo.
5.3 Écriture de données binaires
La méthode write()
écrit des octets dans un fichier. Les données à
écrire doivent être sous forme d'octets (bytes)
.
Lecture et écriture d'images
Lecture d'une image à partir d'un fichier et écriture dans un autre fichier.
# Lecture de l'image
with open('input_image.jpg', 'rb') as infile:
image_data = infile.read()
# Écriture de l'image
with open('output_image.jpg', 'wb') as outfile:
outfile.write(image_data)
Il est également possible d'écrire des données texte :
Exemple :
data = b"Hello, World!"
lines = [b"First line.\n", b"Second line.\n", b"Third line.\n"]
file = open('example.bin', 'wb')
file.write(data)
file.writelines(lines)
file.close()
GO TO FULL VERSION