for ligne in fic: print(ligne)

Transcription

for ligne in fic: print(ligne)
ISN
Lecture de fichiers
I. La fonction open
On peut manipuler un fichier avec la commande fic = open("nomdufichier", mode='r') où mode peut principalement prendre les valeurs (pour plus de détail, voir l’aide) :
’r’ (read) pour ouvrir en mode lecture ;
’w’ (write) pour ouvrir en mode écriture (efface le fichier s’il existe, en créé un nouveau s’il n’existe pas) ;
’a’ (append) ouvre un fichier en écriture, en ajoutant les éléments à la fin.
Pour un fichier ouvert en lecture, on peut ensuite lire tout le fichier en une fois avec fic.read(), une ligne à la fois
avec fic.readline() ou la liste de toutes les lignes avec fic.readlines(). Attention, chaque ligne se termine par
un caractère de fin de ligne ('\n'). On peut aussi parcourir toutes les lignes du fichier grâce à une boucle du type
for ligne in fic.
Si on veut recommencer la lecture depuis le début du fichier, on peut soit le rouvrir, soit ramener le « curseur de lecture »
au début avec fic.seek(0).
De même, si le fichier est ouvert en écriture, on dispose des méthodes fic.write et fic.writelines. Encore une fois,
il faut penser à ajouter des '\n' pour aller à la ligne.
Après avoir réalisé les opérations nécessaires, il faut penser à fermer le fichier avec fic.close(). En particulier, l’écriture
dans un fichier ne sera effective qu’après cette instruction. Une autre façon de procéder, qui permet de toujours fermer
le fichier même si le programme plante, et d’utiliser l’instruction with. Par exemple, pour afficher toutes les lignes du
fichier pipo.txt, on peut taper :
with open("pipo.txt") as fic:
for ligne in fic:
print(ligne)
II. Application
Récupérer le fichier T:\fiches\ISN\TP Fichiers\french.txt, en faire une copie dans votre répertoire (H:\...), et
écrire un script qui réponde aux questions suivantes :
• Quel est le nombre de mots dans ce fichier ?
• Combien y a-t-il de mots commençant par un « e » (hors accent) ?
• Quelle est le plus long mot de ce fichier ?
• Quelle proportion des mots contient un « e » ?
• Quelle est la septième lettre la plus fréquente ?
• Quels sont les mots qui contiennent les lettres « th » suivies d’une consonne ?
1/1
DELAY – DESFORÊTS – Paul Constans – 2015-2016