Info 9
LECTURE ET ÉCRITURE DANS UN FICHIER
Accès aux données d’un fichier
Un fichier peut contenir des données auxquelles on souhaite accéder...
et que l’on peut vouloir exploiter pour construire un nouveau fichier.
1 Lire les lignes d’un fichier
Python permet d’accéder aux données d’un fichier, ::
en::
le
::::::
lisant ::::
ligne
::::
par:::::
ligne :
1. on ouvre le fichier, à l’aide de la commande :
open(’nom_du_fichier.extension’,’r’)
.l’extension du nom du fichier considéré permet d’identifier son format
(txt pour certains textes, wav pour certains fichiers audio, bmp pour des
fichiers images bitmap, etc.)
.l’argument ’r’ sert à préciser que le fichier est « manipulé » en mode lecture
2. on lit les lignes successivement, via des instructions construites avec
fichier.readline() ou fichier.readlines()
3. on ferme le fichier, par le biais de l’instruction fichier.close() .
Exemple d’utilisation
Pour lire, avec Python, les lignes d’un fichier nommé un_texte.txt, on utilise la
syntaxe décrite précédemment comme indiqué dans le programme suivant :
fichier_a_lire=open(’un_texte.txt’,’r’)
nombre_de_lignes=0
print(fichier_a_lire.readline())
nombre_de_lignes=nombre_de_lignes+1
nombre_de_caracteres=0
for ligne in fichier_a_lire.readlines() :
print(ligne)
nombre_de_lignes=nombre_de_lignes+1
nombre_de_caracteres=nombre_de_caracteres+len(ligne)
fichier_a_lire.close()
Dans le programme précédent :
.la première ligne permet de créer un objet (nommé, ici, fichier_a_lire)
qui va permettre de lire le contenu du fichier un_texte.txt ;
.la troisième ligne a pour effet d’afficher le contenu de la première ligne
du fichier un_texte.txt : si, dans la foulée, on saisissait la commande
fichier_a_lire.readline() , alors la deuxième ligne de texte.txt
serait lue (sans être affichée, si on ne le demande pas – avec print) ;
.la sixième ligne a pour effet de lire successivement toutes les lignes du
fichier un_texte.txt à partir de la dernière qui a été lue (ici, comme la
première a été lue, la boucle commence à la deuxième).
En effet, la commande fichier_a_lire.readlines() renvoie une liste
constituée de toutes les lignes (en tant que chaînes de caractères) qui n’ont
pas encore été lues. Ainsi, à chaque tout de boucle, la variable ligne est
la ::::::
chaîne:::
de ::::::::
caractère composée de tous les caractères contenus dans la
nouvelle ligne du fichier un_texte.txt.
L’itération se termine une fois que toutes les lignes ont été lues.
Attention !
Les lignes lues dans le fichier considéré sont des chaînes de caractères.
Ainsi, si l’on s’intéresse, par exemple, à des données numériques, il fau-
dra les convertir dans le type int ou float pour pouvoir les exploiter
ensuite.
2 Ecrire des données dans un fichier
Pour écrire dans un fichier nom_du_fichier.extension :
1. on ouvre le fichier en écriture, par : open(’nom_du_fichier.extension’,’w’)
,→l’argument ’w’ précise que le fichier est « manipulé » en mode écriture), ce
qui créera ce fichier s’il n’existait pas, et l’écrasera s’il existait déjà.
2. on y écrit des chaînes de caractères, avec fichier.write("chaîne de caractères")
3. on ferme le fichier, via l’instruction fichier.close() .