
Lycée Victor Hugo MPSI-PCSI 2016-2017
de créer un fichier (et de l’écraser s’il existe déjà), d’écrire, en complément, à la fin d’un fichier.
Une fois que l’on dispose du descripteur de fichier, on pourra, suivant les cas, lire ou écrire des
données dans le fichier. Les traitements désirés ont été réalisés il faut impérativement fermer le fichier.
En résumé (à retenir) :
— ouverture via monfichier=open(cheminfichier, arg)
— traitements ;
— fermeture via monfichier.close()
On crée le descripteur de fichier nommé monfichier en ouvrant le fichier dont le chemin (jusqu’au
nom inclus) est donné par la chaîne de caractères cheminfichier,
- en lecture seule avec le paramètre arg valant le caractère "r" (read),
- en écriture seule avec la valeur "w" (write) du paramètre arg. Le fichier est créé s’il n’existe pas,
et "écrasé" sinon i.e. son contenu sera perdu et remplacé par ce que l’on va écrire.
- en mode ajout avec le paramètre arg valant le caractère "a" (append). Ce qui sera écrit sera
ajouté à la fin du fichier texte existant (ou créé s’il n’existait pas).
On ferme le descripteur monfichier par la méthode close.
2 Lecture d’un fichier
Pour lire le fichier ( donc ouvert avec l’argument "r") dont le descripteur est monfichier, on peut :
•récupérer la totalité du fichier en une seule instruction par monfichier.read(). Cette méthode
read appelée sur le descripteur de fichier monfichier renvoie la chaîne de caractères correspondant à
la totalité du fichier (symboles de codage fin de lignes (\n), de tabulations (\t), etc inclus).
•récupérer une liste dont les élément sont les lignes du fichier (symboles de codage de fin de ligne
inclus) par monfichier.readlines()
•récupérer le contenu du fichier ligne par ligne via monfichier.readline() ; on n’a donc qu’une
seule ligne du fichier en mémoire, a priori, à un instant donné. L’instruction monfichier.readline()
renvoie la ligne courante du fichier (chaîne de caractères) et se positionne au début de la ligne suivante
donc renvoie une chaîne vide quand on est en fin de fichier.
Il n’y a pas de "s" à la fin du nom de la méthode, ce qui correspond bien à un traitement ligne par ligne
et non de toutes les lignes comme l’instruction précédente. Comme on ne sait pas a priori combien il
y a de lignes dans le fichier, on utilisera des boucles conditionnelles (while).
•utiliser le descripteur monfichier comme un itérateur sur les lignes du fichier. L’instruction
for element in monfichier permet de parcourir le fichier initial ligne à ligne, la variable element
prenant successivement comme valeur la chaîne de caractères correspondant à chaque ligne du fichier.
Pour un très gros fichier, il n’est pas envisageable de charger tout son contenu en mémoire ; les
deux premières possibilités ne sont inutilisables. Les deux premières instructions font aussi évoluer le
placement en fin de fichier.
La méthode split (=fendre). L’instruction texte.split(carac) renvoie la liste des chaînes de ca-
ractères obtenue en découpant la chaîne de caractères texte à chaque apparition de la chaîne de
caractères carac.
Par exemple, avec texte="Les étudiants de CPGE sont fatigués", le résultat de l’instruction
texte.split(" ") est la liste [’Les’, ’étudiants’, ’de’, ’’, ’CPGE’, ’sont’, ’fatigués’]
(les espaces ont disparus et il y avait un double espace avant CPGE).
3 Ecriture
Pour l’écriture (donc on aura ouvert avec l’argument "w" ou "a"), on utilise l’instruction
monfichier.write(texte) qui écrit la chaîne de caractères texte à la fin du fichier (donc si on
souhaite écrire sur des lignes différentes, il faut introduire le codage d’un passage à la ligne).
2