ETS
Plateforme ETSRessources, chapitres & exercices interactifs
?Se connecter
PYTHON · lecture-ecriture

Lire et écrire dans des fichiers en Python

Objectifs pédagogiques

Ouvrir un fichier

open("nom_du_fichier", "mode")

| Mode | Signification | Description | | ------ | ------------- | ------------------------------------------------- | | "r" | Read | lecture seule (erreur si le fichier n’existe pas) | | "w" | Write | écriture (crée ou remplace le fichier) | | "a" | Append | ajout à la fin du fichier | | "r+" | Read & Write | lecture et écriture |

Exemple

f = open("exemple.txt", "w")
f.write("Bonjour Python !")
f.close()

Ce code crée un fichier exemple.txt et y écrit une phrase. Le fichier se trouve dans le même dossier que ton script.

Lire un fichier

Lecture complète

f = open("exemple.txt", "r")
contenu = f.read()
f.close()
print(contenu)

Lecture ligne par ligne

f = open("notes.txt", "r")
for ligne in f:
    print(ligne.strip())   # .strip() supprime les sauts de ligne
f.close()

La syntaxe with open()

Exemple

with open("exemple.txt", "r") as fichier:
    contenu = fichier.read()
    print(contenu)

Pas besoin d’appeler close() : le fichier est fermé automatiquement à la sortie du bloc.

Écrire dans un fichier

Écriture simple

with open("notes.txt", "w") as fichier:
    fichier.write("Note 1 : 15\n")
    fichier.write("Note 2 : 18\n")

Résultat dans le fichier notes.txt :

Note 1 : 15
Note 2 : 18

Ajouter sans écraser

with open("notes.txt", "a") as fichier:
    fichier.write("Note 3 : 12\n")

Mode "a" (append) ajoute du contenu sans supprimer l’existant.

Lire et traiter les données

with open("notes.txt", "r") as fichier:
    lignes = fichier.readlines()

total = 0
for ligne in lignes:
    note = int(ligne.split(":")[1])
    total += note

moyenne = total / len(lignes)
print(f"Moyenne des notes : {moyenne}")

Résultat :

Moyenne des notes : 15.0

Exemple complet

Créons un programme qui :

  1. demande à l’utilisateur d’entrer des notes,
  2. les enregistre dans un fichier,
  3. puis calcule la moyenne à partir du fichier.
# Écriture
with open("notes.txt", "w") as f:
    for i in range(3):
        note = input(f"Entrez la note {i+1} : ")
        f.write(note + "\n")

# Lecture et calcul
with open("notes.txt", "r") as f:
    lignes = f.readlines()

notes = [float(l.strip()) for l in lignes]
moyenne = sum(notes) / len(notes)
print(f"Moyenne : {moyenne:.2f}")

Gestion des erreurs

Exemple

try:
    with open("inexistant.txt", "r") as f:
        contenu = f.read()
except FileNotFoundError:
    print("Erreur : le fichier n’existe pas.")

Résultat :

Erreur : le fichier n’existe pas.
← Retour au module PYTHON