Les fichiers texte en Python



Ouverture d'un fichier texte

Il y a différentes manières d' ouvrir un fichier texte à l'aide de la fonction open. Nous n'en présenterons que deux ici: l'ouverture en écriture et l'ouverture en lecture.

Ouverture en écriture

L'ouverture en écriture d'un fichier texte signifie que l'on souhaite y enregistrer du texte. Elle utilise la fonction open avec le mode "w" (pour write en anglais) :

 f = open (chemin du fichier, "w")

Attention:

  1. si le fichier existe déjà avant l'exécution de cette instruction, son ancien contenu sera complètement effacé !
  2. ce mode d'ouverture ne permet que des accès en écriture jusqu'à la fermeture du fichier.
Ouverture en lecture

L'ouverture en lecture d'un fichier texte, signifie que l'on souhaite simplement lire le texte qui s'y trouve déjà enregistré. L'instruction permettant ceci utilise le mode "r" (comme read en anglais) :

 f = open (chemin du fichier, "r")

Attention:

  1. si le fichier n'existe pas, l'exécution de cette instruction provoquera une erreur.
  2. ce mode d'ouverture ne permet que des accès en lecture jusqu'à la fermeture du fichier.

Ecrire du texte

La procédure write permet d'écrire du texte dans un fichier. Plus précisement, pour écrire une chaine de caractères ch dans un fichier représenté par la variable f:

 f.write (ch)

Les instructions d'écriture doivent évidemment être précédées par l'ouverture du fichier en écriture et suivie par sa fermeture.

Exemple
    f = open("Annonce.txt","w")
    f.write("Cours particulier de Python\n")
    f.write("par Eric Thirion\n")
    f.write("Prix: 25 euros/h\n")
    f.close()

Cette suite d'instructions crée un fichier nommé Annonce.txt dans le répertoire courant.

En ouvrant ce fichier avec le programme Bloc-Note de Windows, on obtient ceci:

Annonce.jpg, 22kB

Remarque: la procédure write n'écrit pas de caractère de saut de ligne à la fin de la chaine de caractères. Si vous souhaitez avoir un passage à la ligne, il faudra la terminer par un "\n".

Lire du texte

Utilisation de la fonction read

La fonction read permet de transférer l'intégralité d'un fichier texte dans une seule chaine de caractères ch:

 ch = f.read ()

f est la variable associée au fichier.

Exemple
    f = open("Annonce.txt","r")
    ch = f.read()
    print(ch)
    f.close()

Ici nous commencons par ouvrir le fichier Annonce.txt en lecture. Le contenu du fichier est transféré dans la chaine de caractères ch, qui est ensuite affichée à l'écran.

Résultat de l'exécution du programme:

ExempleRead.jpg, 12kB

Remarque: la chaine ch contient tous les caractères de saut de ligne qui ont été enregistrés dans le fichier. C'est la raison pour laquelle l'affichage de ch se fait sur plusieur lignes.


Utilisation de la fonction readlines

La fonction readlines donne une autre manière de lire le contenu d'un fichier texte:

 ch = f.readlines ()
Exemple

La différence avec read se situe au niveau du résultat retourné: readlines retourne une liste de chaine de caractères dont chaque élément est une ligne du fichier.

    f = open("Annonce.txt","r")
    L = f.readlines()
    for ch in L :
        print(ch)
    f.close()

Résultat de l'exécution du programme:

ExempleReadLines.jpg, 13kB

On remarque, que chaque ligne du texte affiché est séparée par une ligne blanche. Ceci est du au fait que readlines conserve le caractère de passage à la ligne dans chaque élément de la liste retournée.