Livre_silo 30 août 2013 16:32 Page 377
¨
©
¨
©
¨
©
¨
©
C o p y r i g h t E y r o l l e s
377
B – Compléments sur les entrées/sorties
Si un fichier regroupant quelques lignes de ce type a été écrit, la lecture va réserver une
mauvaise surprise :
In [2]: f = open('tennis.txt')
In [3]: f.readline()
Out[3]: 'Sharapova,2,Russie\n'
Pour enlever les espaces et caractères d’échappement (ici, un retour à la ligne) en début et
fin de ligne, on dispose de la méthode strip, déclinable à droite et à gauche (resp. rstrip et
lstrip) :
In [4]: ' \n \t toto \t truc \n'.strip()
Out[4]: 'toto \t truc'
Dans l’exemple suivant, on lit un fichier contenant des noms, classements et nationalités
de joueuses de tennis :
f = open('tennis.txt','r')
for L in f:
nom, classement, nation = L.rstrip().split(',')
print(nom, nation, int(classement))
f.close()
Le résultat est :
('Sharapova', 'Russie', 2)
('Williams', 'USA', 1)
...
ATTENTION Déconstruction des listes
On aura noté l’affectation de la forme a, b, c = [1, 2, 3] qui fait ce qu’on peut raisonnablement espérer, même s’il conviendrait de l’écrire de façon plus homogène :
a, b, c = 1, 2, 3 ou éventuellement [a, b, c] = [1, 2, 3].
C’est ce type de souplesse qui fait que certains programmeurs trouvent Python formidable...
quand d’autres le trouvent laxiste.
B.1.3 Écrire des données dans un fichier
Pour écrire dans un fichier, on commence par l’ouvrir en écriture (ce qui aura pour effet
d’écraser ledit fichier, s’il existait déjà ¹). Ensuite, on y écrit des chaînes de caractères via la
méthode write et on termine en fermant le fichier. Attention, ici la fermeture est cruciale :
c’est à cet instant que le fichier va réellement être écrit sur le disque.
1. On peut choisir d’écrire à la fin du fichier préexistant, en prenant comme option 'a' (pour « append »)
plutôt que 'w'.
¨
©
¨
©
¨
©
¨
©
C o p y r i g h t E y r o l l e s
377
B – Compléments sur les entrées/sorties
Si un fichier regroupant quelques lignes de ce type a été écrit, la lecture va réserver une
mauvaise surprise :
In [2]: f = open('tennis.txt')
In [3]: f.readline()
Out[3]: 'Sharapova,2,Russie\n'
Pour enlever les espaces et caractères d’échappement (ici, un retour à la ligne) en début et
fin de ligne, on dispose de la méthode strip, déclinable à droite et à gauche (resp. rstrip et
lstrip) :
In [4]: ' \n \t toto \t truc \n'.strip()
Out[4]: 'toto \t truc'
Dans l’exemple suivant, on lit un fichier contenant des noms, classements et nationalités
de joueuses de tennis :
f = open('tennis.txt','r')
for L in f:
nom, classement, nation = L.rstrip().split(',')
print(nom, nation, int(classement))
f.close()
Le résultat est :
('Sharapova', 'Russie', 2)
('Williams', 'USA', 1)
...
ATTENTION Déconstruction des listes
On aura noté l’affectation de la forme a, b, c = [1, 2, 3] qui fait ce qu’on peut raisonnablement espérer, même s’il conviendrait de l’écrire de façon plus homogène :
a, b, c = 1, 2, 3 ou éventuellement [a, b, c] = [1, 2, 3].
C’est ce type de souplesse qui fait que certains programmeurs trouvent Python formidable...
quand d’autres le trouvent laxiste.
B.1.3 Écrire des données dans un fichier
Pour écrire dans un fichier, on commence par l’ouvrir en écriture (ce qui aura pour effet
d’écraser ledit fichier, s’il existait déjà ¹). Ensuite, on y écrit des chaînes de caractères via la
méthode write et on termine en fermant le fichier. Attention, ici la fermeture est cruciale :
c’est à cet instant que le fichier va réellement être écrit sur le disque.
1. On peut choisir d’écrire à la fin du fichier préexistant, en prenant comme option 'a' (pour « append »)
plutôt que 'w'.
