From 87e1bbb160da197aec111084f793e6858058d5d3 Mon Sep 17 00:00:00 2001 From: Alexis Fourmaux Date: Sat, 27 Sep 2025 12:02:19 +0200 Subject: [PATCH] Ajoute la description du mode binaire dans le cours sur les fichiers --- .../cours/python-bases-5-fichiers.md | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/cours/CIEL1/01-bases-python/cours/python-bases-5-fichiers.md b/src/cours/CIEL1/01-bases-python/cours/python-bases-5-fichiers.md index c7b8926..89608b6 100644 --- a/src/cours/CIEL1/01-bases-python/cours/python-bases-5-fichiers.md +++ b/src/cours/CIEL1/01-bases-python/cours/python-bases-5-fichiers.md @@ -19,10 +19,11 @@ fichier = open('nom_du_fichier.txt', 'mode', encoding='utf-8') Le mode d'ouverture permet de savoir quelles actions vous souhaitez (et pourrez) faire avec votre fichier. -- `'r'` : lecture (read) -- `'w'` : écriture (write) - écrase le contenu existant -- `'a'` : ajout (append) - ajoute à la fin du fichier -- `'x'` : création uniquement (erreur si le fichier existe) +- `'r'` : lecture seule (**r**ead only) : on démarre au début du fichier, erreur si le fichier n'existe pas +- `'w'` : écriture (**w**rite) : on démarre au début du fichier, écrase le contenu, crée le fichier au besoin +- `'a'` : ajout (**a**ppend) : on démarre à la fin du fichier, crée le fichier si besoin +- `'x'` : création uniquement (e**x**clusive) : échoue si le fichier existe déjà +- les versions `+` (ex.: `'r+'`, `'w+'`, `'a+'`, `'x+'`) ajoutent la possibilité de lire et écrire simultanément dans le fichier. ```admonish example title="Exemple" ~~~python @@ -30,6 +31,19 @@ fichier = open('exemple.txt', 'r', encoding='utf-8') ~~~ ``` +#### Mode binaire + +Les modes listés au dessus ouvrent les fichiers par défaut en **mode texte**. Dans ce cas, Python interprète les données comme des chaînes de caractères (`str`) et gère la conversion d'encodage (par exemple, `utf-8`). + +Pour manipuler des **données brutes** (images, fichiers audio, etc.), il faut utiliser le **mode binaire** en ajoutant le caractère `'b'` : + +- `'rb'` : lecture binaire +- `'wb'` : écriture binaire +- `'ab'` : ajout binaire +- combiné avec `+` pour lecture/écriture binaire, comme `'rb+'`, `'wb+'`, `'ab+'` + +En mode binaire, Python lit et écrit des objets de type `bytes` et ne fait aucune conversion d’encodage ni adaptation de fin de ligne : les octets lus et écrits sont strictement identiques à ceux stockés sur le disque. + ## Fermer un fichier