Lecture et Ecriture de Fichiers

Les fichiers permettent de sauvegarder des donnees de facon permanente ! Scores de jeu, configurations, listes de contacts... Apprends a lire et ecrire des fichiers comme un pro !

Difficulte:
40 min
+45 XP

Objectifs du cours

  • Comprendre comment Python interagit avec les fichiers
  • Ouvrir un fichier en lecture avec open() et read()
  • Lire un fichier ligne par ligne avec readlines()
  • Ecrire dans un fichier avec write() et writelines()
  • Utiliser le gestionnaire de contexte with pour securiser les operations

Erreurs courantes a eviter

  • Oublier de fermer le fichier apres utilisation (sans 'with')
  • Confondre les modes 'r', 'w' et 'a' (lecture, ecriture, ajout)
  • Utiliser 'w' au lieu de 'a' et ecraser tout le contenu
  • Oublier l'encodage UTF-8 pour les caracteres speciaux

**La fonction open()**

Pour ouvrir un fichier, on utilise open() avec le chemin du fichier : ```python fichier = open("mon_fichier.txt", "r") ```

**Les modes d'ouverture :**

| Mode | Description | |------|-------------| | "r" | Lecture (read) - defaut | | "w" | Ecriture (write) - ecrase le contenu | | "a" | Ajout (append) - ajoute a la fin | | "r+" | Lecture et ecriture |

**Lire tout le contenu :**

```python contenu = fichier.read() ```

**IMPORTANT : toujours fermer le fichier !**

```python fichier.close() ```

**Meilleure methode : le with**

Le `with` ferme automatiquement le fichier : ```python with open("fichier.txt", "r") as f: contenu = f.read() # Fichier ferme automatiquement ici ```

Python
# Lecture d'un fichier texte
# On cree d'abord un fichier pour l'exemple
with open("exemple.txt", "w") as f:
    f.write("Bonjour Python !\n")
    f.write("Ceci est un fichier texte.\n")
    f.write("Troisieme ligne.\n")

# Lecture complete avec read()
print("=== LECTURE COMPLETE ===")
with open("exemple.txt", "r") as fichier:
    contenu = fichier.read()
    print(contenu)

# Lecture avec nombre de caracteres
print("=== LECTURE PARTIELLE ===")
with open("exemple.txt", "r") as f:
    debut = f.read(10)  # Lit les 10 premiers caracteres
    print(f"Premiers caracteres : '{debut}'")

# Lecture ligne par ligne (methode 1)
print("=== LIGNE PAR LIGNE ===")
with open("exemple.txt", "r") as f:
    for ligne in f:
        print(f"-> {ligne.strip()}")

Quiz de validation

1. Quel mode ouvre un fichier en lecture sans l'effacer ?

2. Pourquoi utiliser 'with open()' plutot que 'open()' seul ?

3. Que fait le mode "a" (append) ?

4. Quelle methode renvoie une liste de toutes les lignes ?

5. Quel encodage utiliser pour les accents francais ?

Pixel