6. Manipulation de fichiers
Résumé
Les programmes que nous avons réalisés jusqu'ici
présentent deux inconvénients majeurs. Tout d'abord,
ils ne traitent qu’un très petit nombre de données que nous pouvons
d'ailleurs inclure dans le corps même du programme
(par exemple dans une variable ou une liste). Cette façon de procéder
devient cependant tout à fait inadéquate lorsque l’on souhaite traiter
une quantité d’informations plus importante. De plus, les programmes
que nous avons réalisés jusqu'à présent sont éphémères
dans la mesure où les variables et les listes auxquelles ils ont
recours offrent des moyens de stockage temporaires mais non durables
puisque les données sont perdues à la fermeture du programme. Afin de
pallier à ces défauts, il convient de recourir aux fichiers permettant
de conserver durablement une grande quantité de données résultant
d'un programme même lorsque celui-ci est terminé.
L'objectif de ce chapitre est
d'expliquer comment un programme Python peut
enregistrer et lire des données dans un fichier texte.
Objectifs du chapitre
Au terme de ce chapitre, chaque étudiant devra être capable de:
- expliquer la raison pour laquelle un programme a besoin
d'un système de stockage durable
d'informations;
- préciser les systèmes de stockage dans lesquels un programme peut
stocker et récupérer des informations;
- préciser ce qu'est le répertoire courant
d'un programme et retrouver son chemin
d'accès à l'aide de la fonction
Python adéquate;
- identifier un fichier à l'aide de son chemin
d'accès relatif et absolu;
- expliquer la différence entre un fichier texte et un fichier
binaire;
- expliquer la différence entre un nom de fichier et un
objet-fichier en recourant à l'analogie du livre;
- indiquer les étapes à suivre afin d'écrire ou de
lire des informations dans et à partir d'un fichier;
- créer, ouvrir en écriture et/ou en lecture un fichier texte en
précisant la norme de conversion à utiliser;
- écrire une chaîne de caractères (au début d'un
nouveau fichier ou en fin d'un fichier existant) dans
un fichier texte avec ou sans retour de ligne;
- lire la totalité d'un fichier texte en une seule
étape;
- lire une ligne ou l'ensemble des lignes
d'un fichier texte;
- lire en boucle ligne après ligne le contenu d'un
fichier texte;
- tester, en mode lecture, l'atteinte de la fin
d'un fichier texte;
- lever l'exception provenant
d'une tentative d'ouverture
d'un fichier inexistant;
- convertir une chaîne de caractères en séquence de bytes et
inversement;
- expliquer ce qu'est un fichier texte structuré et
donner des exemples de tels types de fichiers en précisant le rôle des
balises et séparateurs;
- enregistrer et récupérer le contenu d'une
variable d'un type quelconque dans un fichier binaire.
Documents du chapitre
Corrigés des exercices
Pour chacun des exercices du cours, les corrigés ci-dessous doivent permettre à l'élève d'observer le résultat à obtenir (double-clic sur le fichier test) et de vérifier/comparer sa résolution avec une solution possible (éditer le fichier solution):