La gestion des fichiers en Python

@joekakone

Joseph Konka @joekakone

03/03/2026 · 7 min

Assurez la persistance de vos données en Python : découvrez le gestionnaire de contexte with open(), les modes d'accès (r, w, a), l'encodage universel UTF-8 et le comparatif entre formats texte, JSON et binaire Pickle.

Partie 5 : La gestion des fichiers en Python#

Toutes les variables, listes et dictionnaires que nous avons créés jusqu'ici résident exclusivement dans la mémoire vive (RAM) de l'ordinateur. Dès que le script se termine ou que la machine s'éteint, cette mémoire est entièrement libérée et son contenu s'évapore.

Pour conserver des informations d'une exécution à l'autre — qu'il s'agisse de sauvegarder les résultats d'un calcul, d'exporter des données analytiques ou de charger un modèle d'intelligence artificielle entraîné —, il est indispensable de stocker ces données sur un support persistant sous la forme de fichiers.


1. La règle d'or : Le gestionnaire de contexte with open()#

En langage C ou en vieux Python, on utilisait la séquence manuelle f = open(...) puis f.close(). Cependant, si une erreur survient au milieu du traitement, l'instruction close() n'est jamais atteinte, laissant le fichier verrouillé au niveau du système d'exploitation.

En Python moderne, on utilise systématiquement le mot-clé with (Context Manager) :

with open("donnees.txt", "w", encoding="utf-8") as fichier:
    fichier.write("Enregistrement securise des donnees.\n")
# Dès la sortie de l'indentation, le fichier est AUTOMATIQUEMENT fermé !
flowchart TD
    A[Instruction with open] --> B[Ouverture du fichier sur disque]
    B --> C[Execution du bloc indente de lecture / ecriture]
    C -->|Exception levee ou fin nominale| D[Fermeture automatique garantie __exit__]

[!IMPORTANT] Spécifiez toujours l'encodage encoding="utf-8" !
Sous Windows, Python utilise par défaut l'encodage hérité de la console (cp1252), ce qui provoque de redoutables erreurs UnicodeDecodeError dès qu'un caractère accentué (é, à, è, ç) ou un émoji est lu. Forcer encoding="utf-8" garantit la compatibilité multi-plateforme.


2. Les modes d'ouverture de fichiers#

Le second paramètre de la fonction open() indique l'opération souhaitée :

Mode Opération Comportement si le fichier existe Comportement si le fichier n'existe pas
"r" Lecture seule (Read) - Défaut Ouvre au début Lève FileNotFoundError
"w" Écriture seule (Write) Écrase et vide le fichier Crée le fichier
"a" Ajout (Append) Conserve le contenu et écrit à la fin Crée le fichier
"x" Création exclusive Lève FileExistsError Crée le fichier
"rb" Lecture binaire Ouvre en octets bruts Lève FileNotFoundError
"wb" Écriture binaire Écrase en octets bruts Crée le fichier

3. Panorama des formats de persistance au programme#

Cette partie est découpée en trois leçons thématiques adaptées aux exigences du développement moderne :

flowchart LR
    A[Donnees en memoire Python] --> B{Quel format de stockage ?}
    B -->|Texte brut non structure| C[1. Fichiers Texte .txt]
    B -->|Echange standard inter-langages| D[2. Fichiers JSON .json]
    B -->|Objets Python complexes natifs| E[3. Fichiers Pickle .pkl]
  1. Fichiers texte : lecture ligne par ligne, écriture de flux textuels et nettoyage des sauts de ligne.
  2. Fichiers JSON : le format roi du web, parsing avec json.load() / json.dump().
  3. Fichiers Pickle : sérialisation binaire directe de structures Python et modèles d'apprentissage automatique.

Commentaires

Inscrivez-vous à une formation complète

Voir le catalogue