Lire et écrire dans des fichiers¶
Jusqu’ici, quand on exécutait un programme, toutes les informations disparaissaient une fois le programme terminé.
Mais si on veut sauvegarder quelque chose (un score, une liste de tâches, un texte généré…), il faut stocker les données dans un fichier.
Python permet de lire et écrire dans des fichiers de manière très simple.
Ouvrir un fichier¶
Pour travailler avec un fichier, on utilise la fonction open.
fichier = open("mon_fichier.txt", "r")
Le deuxième argument détermine ce qu’on veut faire :
| Mode | Signification |
|---|---|
"r" |
read → lire le fichier |
"w" |
write → écraser / écrire dedans |
"a" |
append → ajouter à la fin du fichier |
Lire le contenu d’un fichier¶
fichier = open("texte.txt", "r")
contenu = fichier.read()
fichier.close()
print(contenu)
fichier.read() lit tout le fichier en une seule fois.
Lire le fichier ligne par ligne¶
fichier = open("texte.txt", "r")
for ligne in fichier:
print(ligne.strip())
fichier.close()
strip() sert à enlever le retour à la ligne inutile.
Écrire dans un fichier (en écrasant le contenu)¶
fichier = open("notes.txt", "w")
fichier.write("Bonjour\n")
fichier.write("Ceci est écrit dans un fichier.\n")
fichier.close()
Attention :
"w"efface tout ce qui était dans le fichier avant.
Ajouter du texte sans effacer le fichier¶
fichier = open("journal.txt", "a")
fichier.write("Nouvelle entrée.\n")
fichier.close()
Utiliser with (recommandé)¶
with ferme le fichier automatiquement, même en cas d’erreur.
with open("exemple.txt", "r") as fichier:
contenu = fichier.read()
print(contenu)
C’est la bonne pratique dès que vous manipulez des fichiers.
Petit quizz¶
with open("data.txt", "w") as f:
f.write("Hello")
Que se passe-t-il si `data.txt` existait déjà ?
- Le programme refuse d'écrire
- *Le contenu précédent est effacé puis remplacé par "Hello"
- Le texte "Hello" est ajouté à la fin
- Le programme plante
> Le mode `"w"` écrase entièrement le fichier avant d'écrire.
Exemple complet : lire une liste depuis un fichier¶
Contenu du fichier courses.txt :
pain
lait
riz
Programme :
courses = []
with open("courses.txt", "r") as f:
for ligne in f:
courses.append(ligne.strip())
print(courses)
Affiche :
['pain', 'lait', 'riz']
Exercice pratique (complet)¶
Vous allez créer un mini système de sauvegarde.
- Demandez à l’utilisateur d’entrer plusieurs phrases, jusqu’à ce qu’il tape
"STOP". - Stockez ces phrases dans une liste.
- Enregistrez cette liste dans un fichier
journal.txt, en écrivant chaque phrase sur une ligne (mode"a"pour ne pas effacer l’ancien contenu). - Puis relisez le fichier et affichez le nombre total de lignes enregistrées.
Exemple d’exécution :
Entrez une phrase (STOP pour finir) : Bonjour
Entrez une phrase (STOP pour finir) : J'apprends Python
Entrez une phrase (STOP pour finir) : STOP
Journal mis à jour !
Nombre total d'entrées : 17
Vous savez maintenant enregistrer des données et les relire plus tard. C’est une étape clé avant d’apprendre à créer des vrais projets qui conservent leur état dans le temps.