I/O Fichiers
Progression
#Fichiers (I/O)
La manipulation de fichiers permet de persister des données et d'échanger des informations entre programmes ou sessions. En Python, il est essentiel d'ouvrir les fichiers avec le bon mode et encodage, d'utiliser des context managers pour garantir leur fermeture automatique, de manipuler les chemins de façon portable avec pathlib, et de gérer proprement les erreurs d'accès. Bien qu'en environnement Pyodide le système de fichiers soit virtuel et réside en mémoire, les principes et les bonnes pratiques restent identiques.
Objectifs d'apprentissage
- Lire et écrire des fichiers en gérant correctement l'encodage, les erreurs et les chemins portables.
- Utiliser systématiquement les context managers (
with) pour garantir la fermeture des fichiers.- Manipuler des formats structurés comme JSON et CSV de manière sûre, en utilisant des flux et en gérant les exceptions.
1with open('demo.txt','w', encoding='utf-8') as f:2 f.write('demo')3print(open('demo.txt', encoding='utf-8').read())La lecture ligne à ligne est particulièrement efficace pour traiter de gros fichiers sans charger tout le contenu en mémoire. Il est important de gérer les erreurs courantes comme l'absence du fichier avec des blocs try/except appropriés :
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')Le module pathlib offre une interface orientée objet pour manipuler les chemins de fichiers de manière portable entre systèmes d'exploitation. Il simplifie les opérations courantes comme la création de répertoires, la concaténation de chemins et la lecture/écriture de contenu, tout en garantissant la spécification explicite de l'encodage :
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
#Exercices
Ces exercices vous permettront de pratiquer la manipulation de fichiers dans différents formats :
- Lisez un fichier CSV simple au format
a,b,cet calculez la moyenne des valeurs de la colonnec. - Créez un mini système de journalisation qui ajoute des lignes horodatées dans un fichier texte.
#Pièges fréquents
Plusieurs erreurs classiques peuvent compromettre la fiabilité de la manipulation de fichiers. Oublier de spécifier explicitement l'encodage (par exemple utf-8) peut conduire à des caractères corrompus selon la plateforme. Ne pas fermer correctement les fichiers, notamment en utilisant open(...).read() sans context manager with en production, peut épuiser les descripteurs de fichiers disponibles. Enfin, écraser accidentellement un fichier existant peut être évité en utilisant exist_ok=False lors de la création de répertoires ou en ajoutant des suffixes de sauvegarde automatiques.