Travailler avec des fichiers binaires en Python
Travailler avec des fichiers en Python
-
Objectifs
- Au cours de cette leçon, vous apprendrez à manipuler des fichiers binaires en Python : ouvrir, fermer, lire et écrire des fichiers binaire à l’aide de programmes informatiques.
-
Introduction
- Un fichier est une abstraction d’une partie de la mémoire qui représente une information. Celle-ci peut prendre différentes formes : un document texte, une image, un son, une vidéo, un exécutable… Au plus bas niveau, toute information est stockée de la même manière, à savoir comme une séquence de bits (0 ou 1) qu’il faut interpréter pour obtenir l’information de haut niveau représentée.
- On distingue couramment deux types de fichiers, qui seront manipulés à des niveaux différents :
- Un fichier texte est constitué d’une séquence de caractères, permettant de stocker une chaine de caractères sur disque. Un fichier .py contenant le code source d’un programme Python est un exemple d’un tel fichier ;
- Un fichier binaire est constitué d’une séquence de bits, organisés en paquets de huit, appelés octets. Un fichier .png avec une image est un exemple d’un tel fichier.
- Dans cet article, nous nous concentrerons sur l’ouverture, la fermeture, la lecture et l’écriture de données dans un fichier binaire. Si vous cherchez les fichiers de type texte lire cet article
-
Lecture et écriture dans un fichier binaire
- La fonction
open()
ouvre un fichier au format texte par défaut. Pour ouvrir un fichier au format binaire, ajoutez "b
" au paramètre mode. - Par conséquent, le mode "
rb
" ouvre le fichier au format binaire pour la lecture, tandis que le mode "wb
" ouvre le fichier au format binaire pour l’écriture. - Contrairement aux fichiers en mode texte, les fichiers binaires ne sont pas lisibles par l’homme. Lorsqu’elles sont ouvertes à l’aide d’un éditeur de texte, les données sont méconnaissables.
-
Ecrire dans un fichier binaire
- Pour écrire du texte dans un fichier binaire, vous devez préfixer la chaîne avec le caractère "
b
" pour indiquer à Python qu’il s’agit d’une chaîne binaire, alors convertissez-la vous-même en une séquence d’octets - Le code suivant stocke une liste de nombres dans un fichier binaire. La liste est d’abord convertie dans un tableau d’octets avant l’écriture. La fonction intégrée
bytearray()
renvoie une représentation octet de l’objet. -
Lire dans un fichier binaire
- Pour lire le fichier binaire ci-dessus, la sortie de la méthode
read()
est convertie en une liste à l’aide de la fonctionlist()
. -
Les méthodes de l’objet
file
L’avantage des fichiers binaires, par rapport aux fichiers textes est qu’ils sont plus compacts en termes d’espace occupé et également plus rapide à lire et écrire. Par contre, la difficulté avec ces fichiers est qu’il faut, pour pouvoir les manipuler, connaitre précisément l’organisation des données en leur sein.
f = open('C:/Users/bigtec/Desktop/note.txt', "wb")
num=[5, 10, 15, 20, 25]
arr=bytearray(num)
f.write(arr)
f.close()
f = open('C:/Users/bigtec/Desktop/note.txt', "rb")
num=list(f.read())
print (num)
f.close()
Méthode | La description |
---|---|
file.close () | Ferme le file. |
file.flush () | Vide le tampon interne. |
next(file) | Renvoie la ligne suivante du fichier chaque fois qu’il est appelé. |
file.read ([taille]) | Lit un nombre spécifié d’octets dans le file. |
file.readline () | Lit une ligne entière du file. |
file.readlines () | Lit jusqu’à EOF et renvoie une liste contenant les lignes. |
file.seek(offset, from) | Définit la position actuelle du file. |
file.tell () | Renvoie la position actuelle du fichier |
file.write (str) | Écrit une chaîne dans le file. Il n’y a pas de valeur de retour. |