Formation I.S.N.

Manipuler des fichiers texte en Python

Le langage Python permet de créer, d'ouvrir et de manipuler des fichiers, en particulier les fichiers textes de format : .txt ; .html ; .py ; etc...

On présente les instructions usuelles dans cette page. Ces instructions pourront être testées à étapes régulières dans un environnement de travail en Python (comme Pyzo).

Ouvrir (créer) un nouveau fichier

L'instruction ci-dessous crée le fichier nommé Mon_fichier.py dans le répertoire courant (usuellement celui dans lequel est enregistré le programme Python qui manipule le fichier) et stocke ce fichier dans la variable nommée f.


f = open('Mon_fichier.py', 'w')
				

Attention !

Si un fichier de même nom et de même format existe déjà dans le répertoire, il est automatiquement effacé et remplacé.

On crée (accède à) un fichier dans un autre répertoire que le courant, en utilisant un adressage relatif depuis le répertoire courant ("/" pour descendre, "../" pour remonter d'un dossier).

Écrire dans un fichier existant

La méthode .write() permet d'écrire, à la file, du texte (str) dans le fichier stocké par la variable f et ouvert en mode écriture ('w' ou 'a' – voir plus loin).


f.write('pre = input("Quel est votre prenom ? ") \n')
f.write('print("Bonjour", pre) \n')
				

Rappel

Le caractère qui symbolise un passage à la ligne est '\n'.

Clôturer un fichier ouvert

Pour que le fichier créé, ouvert ou modifié soit exploitable, il faut le fermer :


f.close()
				

Activité

  1. Saisissez, sauvegardez puis exécutez les quatre instructions précédentes.
  2. Vérifiez que Mon_fichier.py a été créé dans le répertoire courant.
  3. Ouvrez ce fichier avec le logiciel Pyzo (ou un autre environnement de travail en Python) puis testez si le programme est bien fonctionnel.

Ajouter des informations à un fichier

On utilise à nouveau la fonction open() avec le paramètre 'a' (append ou ajouter) puis on referme...

Activité

  1. Dans un nouveau programme, entrez les instructions suivantes :
    
    f = open('Mon_fichier.py', 'a')
    f.write('print("Comment vas-tu ?") \n')
    f.close()
    						
  2. Exécutez ce programme et vérifiez que Mon_fichier.py est toujours pésent dans le répertoire courant.
  3. Ouvrez à nouveau ce fichier avec le logiciel Pyzo (ou un autre environnement de travail en Python) et vérifiez que le programme a été modifié et qu'il est toujours fonctionnel.

Lire le contenu d'un fichier

La fonction open() de paramètre 'r' (read) ouvre le fichier, en lecture seule...

Il existe plusieurs méthodes pour récupérer les informations contenues dans un fichier.

Tout lire d'un coup

On peut lire toutes les lignes d'un coup grâce à la méthode .readlines() (avec un « s » à la fin). Ces lignes sont des chaînes de caractères et elles sont stockées dans une liste (gourmand en mémoire).

Testez cette méthode dans un nouveau programme grâce aux lignes suivantes :


f = open('Mon_fichier.py', 'r')
liste_lignes = f.readlines()
print(liste_lignes)
f.close()
				

Lire une ligne

On peut lire une ligne grâce à la méthode .readline() (sans un « s » à la fin). Après la lecture d'une ligne (qui se termine par '\n'...), un « pointeur » va au début de la ligne suivante.

Testez cette méthode dans un nouveau programme grâce aux lignes suivantes :


f = open('Mon_fichier.py', 'r')
print(f.readline())
print(f.readline())
f.close()
				

Lire toutes les lignes, une par une

Méthode « magique » de Python, l'opérateur d'inclusion in s'applique aussi à un fichier ouvert en lecture seule.

Testez cette méthode grâce aux lignes suivantes :


f = open('Mon_fichier.py', 'r')
for ligne in f:
    print(ligne.rstrip('\n'))    # .rstrip() enlève le caractère indiqué
f.close()