Aller au contenu principal

I/O Fichiers

Progression

#Fichiers (I/O)

À quoi ça sert ?

À quoi ça sert: persister et échanger des données. Comment: ouvrir avec le bon mode/encodage, utiliser des context managers, manipuler des chemins de façon portable et gérer proprement les erreurs. En environnement Pyodide, le FS est virtuel en mémoire mais les principes restent valables.

Objectifs d’apprentissage

  • Lire/écrire des fichiers en gérant encodage/erreurs et chemins portables.
  • Utiliser les context managers pour garantir la fermeture.
  • Manipuler JSON/CSV de façon sûre (flux, exceptions).
pythonpython
1with open('demo.txt','w', encoding='utf-8') as f:2    f.write('demo')3print(open('demo.txt', encoding='utf-8').read())

Lecture ligne à ligne et gestion d’erreurs:

pythonpython
1try:2    with open('donnees.csv', encoding='utf-8') as f:3        for line in f:4            print(line.strip())5except FileNotFoundError:6    print('Fichier absent — créez-le d\'abord')

Chemins portables et encodage:

pythonpython
1from pathlib import Path2base = Path('.')3data_dir = base / 'data'4data_dir.mkdir(exist_ok=True)5fpath = data_dir / 'demo.txt'6fpath.write_text('café', encoding='utf-8')7print(fpath.read_text(encoding='utf-8'))

#Playground

Chargement de l’éditeur...

#Exercices

  • Lire un CSV simple a,b,c et calculer la moyenne de la colonne c.
  • Écrire un mini journaliseur qui ajoute des lignes datées dans un fichier texte.

#Pièges fréquents

  • Oublier l’encodage explicite (utf-8) → caractères corrompus selon plateforme.
  • Ne pas fermer le fichier (éviter open(...).read() sans with en production).
  • Ecraser un fichier par erreur: sécuriser avec exist_ok=False ou des suffixes de sauvegarde.

#Quiz éclair

Quelle option évite un encodage corrompu multi‑plateformes ?
Quelle option évite un encodage corrompu multi‑plateformes ?