Livre_silo 30 août 2013 16:32 Page 376
¨
©
¨
©
¨
©
¨
©
C o p y r i g h t E y r o l l e s
376
Informatique pour tous
En pratique :
• L’ ouverture du fichier consiste à associer (via la fonction open) un objet de type file à
un fichier existant. On peut voir cet objet comme quelque chose qui pointe au début
du fichier et auquel on peut demander de lire des lignes et d’en donner le résultat. Le
principe n’ est pas d’aller voir à un endroit arbitraire, contrairement à ce que l’on ferait dans
un tableau.
• La lecture des lignes peut se faire soit pas à pas via la méthode readline, qui lit la ligne
courante et passe à la suivante, soit globalement via la méthode readlines, qui crée l’itérateur de toutes les lignes et permet ainsi de traiter ces dernières dans une boucle. Chaque
ligne est en fait une chaîne de caractères (string).
• On ferme le fichier via la méthode close : il est conseillé d’écrire cette instruction aussitôt
après avoir écrit l’instruction open. Si on l’oublie, la plupart du temps on ne verra pas
la différence. Néanmoins, c’est une bonne habitude à prendre car on libère ainsi des
ressources dont on n’a plus l’utilité.
Dans l’exemple suivant, on ouvre un fichier dont le nom est tagada.txt, on affiche la
première ligne lue, puis on calcule la somme des longueurs de toutes les lignes suivantes.
mon_fichier = open('tagada.txt','r') # 'r' pour lecture
print(mon_fichier.readline())
s = 0
for L in mon_fichier.readlines():
s += len(L)
mon_fichier.close()
Une façon encore plus simple de parcourir les lignes d’un fichier consiste à écrire :
for L in mon_fichier. Cela ressemble à la méthode readlines, à une subtile amélioration près.
La séquence des lignes, qui peut être grande, n’est pas créée avant d’être parcourue : les
lignes sont lues à la volée, dès que la précédente a été traitée.
Exercice B.1 Exécuter le programme précédent sur un petit fichier de quelques lignes que vous aurez
préalablement créé. Comparer le résultat avec celui attendu, puis expliquer.
Chaque ligne L est terminée par un caractère spécial de retour à la ligne que l’on note 'n'. Il est affiché
par print et compté par len. On peut le visualiser en observant la valeur de L ou bien en la transformant
en liste.
B.1.2 Extraction des données dans une ligne
En pratique, on veut souvent séparer des informations dans les lignes lues. Typiquement,
une ligne prend la forme Sharapova,2,Russe et on veut en extraire différentes données, de
différentes natures. La méthode split fait une partie de ce travail : il suffit de lui donner
comme paramètre le caractère selon lequel on veut couper la chaîne. Une liste de chaînes
est rendue :
In [1]: 'Sharapova,2,Russie'.split(',')
Out[1]: ['Sharapova', '2', 'Russie']
Précédent

- 389/402

Suivant